Mark repo as archived

Bug: T366836
Change-Id: I1af0d5b36827060020d72192e9114455e8d1427d
diff --git a/ARCHIVED.md b/ARCHIVED.md
new file mode 100644
index 0000000..17cb85d
--- /dev/null
+++ b/ARCHIVED.md
@@ -0,0 +1 @@
+[ARCHIVED] This Repo has been moved to Gitlab https://gitlab.wikimedia.org/repos/data-engineering/schemas-event-primary
diff --git a/README.md b/README.md
deleted file mode 100644
index 635cdd4..0000000
--- a/README.md
+++ /dev/null
@@ -1,46 +0,0 @@
-'Primary' event JSONSchemas for Wikimedia & MediaWiki event data.
-
-This schema repository contains event schemas that directly affect
-user-facing features.  These schemas are meant to represent 'tier 1' events.
-This repository complements the [schemas/event/secondary](https://gerrit.wikimedia.org/r/plugins/gitiles/schemas/event/secondary/+/master) repository.
-
-See also:
-- [Event Platform/Schemas](https://wikitech.wikimedia.org/wiki/Event_Platform/Schemas)
-- [Event Platform/Schemas/Guidelines](https://wikitech.wikimedia.org/wiki/Event_Platform/Schemas/Guidelines)
-
-
-NOTE: The only reason for having separate event schema repositories is to
-allow for different repository merge rights.  Changes to primary schemas need
-to be more restricted than changes to secondary schemas.
-
-## Contributing
-
-Most files in this repo are automatically generated by [jsonschema-tools](https://github.com/wikimedia/jsonschema-tools) and must not be changed after their initial creation.
-
-**Follow the [Event Platform Schema Guidelines](https://wikitech.wikimedia.org/wiki/Event_Platform/Schemas/Guidelines)** when creating or updating schemas.
-
-Prerequisites:
-
-* A clone of this Git repository.
-* Run `npm install`.
-
-To update a schema:
-
-1. Edit the `current.yaml` file, and remember to increment the version in the `$id` field.
-2. Run `npm run build-modified`, which generates the versioned YAML and JSON files.
-3. Commit the new and changed files to Git, and submit them for code review.
-
-To create a schema:
-
-1. Create a subdirectory for the schema under one of the `jsonschema/` namespace directories,
-   and draft the first version in a new `current.yaml` file.
-2. Run `npm run build-new path/to/your/current.yaml`, which generates the
-   versioned YAML and JSON files.
-3. Commit the new files to Git, and submit them for code review.
-
-## See also
-
-- [Event Platform/Schemas](https://wikitech.wikimedia.org/wiki/Event_Platform/Schemas)
-- [Event Platform/Schemas/Guidelines](https://wikitech.wikimedia.org/wiki/Event_Platform/Schemas/Guidelines)
-- [Event Platform/Instrumentation How To](https://wikitech.wikimedia.org/wiki/Event_Platform/Instrumentation_How_To)
-- [Event Platform/Analytics/Fragments](https://wikitech.wikimedia.org/wiki/Event_Platform/Analytics/Fragments)
diff --git a/jsonschema/api-gateway/request/1.0.0 b/jsonschema/api-gateway/request/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/api-gateway/request/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/api-gateway/request/1.0.0.yaml b/jsonschema/api-gateway/request/1.0.0.yaml
deleted file mode 100644
index d7f40a0..0000000
--- a/jsonschema/api-gateway/request/1.0.0.yaml
+++ /dev/null
@@ -1,100 +0,0 @@
-title: api-gateway/request
-description: A single request to the API Gateway
-$id: /api-gateway/request/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  backend_time_ms:
-    description: Elapsed milliseconds to process request by the backend service
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  client_id:
-    description: The client_id for OAuth2 authenticated clients
-    type: string
-  http:
-    type: object
-    properties:
-      client_ip:
-        description: >-
-          The http client's IP address, usually set from the X-Client-IP header,
-          the value of which is extracted from X-Forwarded-For.
-        type: string
-      has_cookies:
-        description: True if the http request has any cookies set
-        type: boolean
-      method:
-        description: 'The HTTP request method (GET, POST, etc.)'
-        type: string
-      protocol:
-        description: The protocol used for the request (HTTP or HTTPS)
-        type: string
-      request_headers:
-        description: 'Request headers sent by the client.  E.g. user-agent, etc.'
-        type: object
-        additionalProperties:
-          type: string
-      response_headers:
-        description: Response headers sent back to the client (when known).
-        type: object
-        additionalProperties:
-          type: string
-      status_code:
-        description: The HTTP status code returned for this request (when known)
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  route:
-    description: The name of the request route
-    type: string
-  total_time_ms:
-    description: Total elapsed milliseconds to process request
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-examples:
-  - $schema: /api-gateway/request/1.0.0
-    backend_time_ms: 2
-    client_id: test_client
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: example_stream
-    total_time_ms: 3
diff --git a/jsonschema/api-gateway/request/current.yaml b/jsonschema/api-gateway/request/current.yaml
deleted file mode 100644
index 5f0adeb..0000000
--- a/jsonschema/api-gateway/request/current.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-title: api-gateway/request
-description: A single request to the API Gateway
-$id: /api-gateway/request/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/common/1.0.0#
-  - $ref: /fragment/http/1.2.0#
-  - $ref: /fragment/http/client_ip/1.0.0#
-  - properties:
-      backend_time_ms:
-        type: integer
-        description: Elapsed milliseconds to process request by the backend service
-      total_time_ms:
-        type: integer
-        description: Total elapsed milliseconds to process request
-      client_id:
-        type: string
-        description: The client_id for OAuth2 authenticated clients
-      route:
-        type: string
-        description: The name of the request route
-examples:
-  - $schema: { $ref: "#/$id" }
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: example_stream
-    backend_time_ms: 2
-    total_time_ms: 3
-    client_id: 'test_client'
diff --git a/jsonschema/api-gateway/request/latest b/jsonschema/api-gateway/request/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/api-gateway/request/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/api-gateway/request/latest.yaml b/jsonschema/api-gateway/request/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/api-gateway/request/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/change-prop/continue/1.0.0 b/jsonschema/change-prop/continue/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/change-prop/continue/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/change-prop/continue/1.0.0.yaml b/jsonschema/change-prop/continue/1.0.0.yaml
deleted file mode 100644
index 97716eb..0000000
--- a/jsonschema/change-prop/continue/1.0.0.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-title: change-prop/continue
-description: Represents a continuation request in batch processing
-$id: /change-prop/continue/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - continue
-  - meta
-  - original_event
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  continue:
-    description: continuation token
-    type: object
-  emitter_id:
-    description: identifies the entity that requested a retry
-    type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  original_event:
-    description: original event that began the batch
-    type: object
-  sequence_num:
-    description: Number of this continuation event in the current sequence.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  triggered_by:
-    description: >
-      comma-separated list of event descriptions in `<topic>:<uri>` format, that
-      represent a chain of events that caused this event to be emitted.
-    type: string
-examples:
-  - $schema: /change-prop/continue/1.0.0
-    continue:
-      example_key: example_value
-    emitter_id: example_emitter_id
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: change-prop.continue.example
-    original_event:
-      example_key: example_value
diff --git a/jsonschema/change-prop/continue/CHANGELOG.md b/jsonschema/change-prop/continue/CHANGELOG.md
deleted file mode 100644
index 9be2786..0000000
--- a/jsonschema/change-prop/continue/CHANGELOG.md
+++ /dev/null
@@ -1,5 +0,0 @@
-### Version 1.0.0
- - Updated to draft-07 new schema conventions.
-
-### Version 2
- - Added `minLength: 1` for required string properties.
\ No newline at end of file
diff --git a/jsonschema/change-prop/continue/current.yaml b/jsonschema/change-prop/continue/current.yaml
deleted file mode 100644
index 0505a69..0000000
--- a/jsonschema/change-prop/continue/current.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-title: change-prop/continue
-description: Represents a continuation request in batch processing
-$id: /change-prop/continue/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/common/1.0.0#
-  - properties:
-      emitter_id:
-        type: string
-        description: identifies the entity that requested a retry
-      original_event:
-        type: object
-        description: original event that began the batch
-      continue:
-        type: object
-        description: continuation token
-      triggered_by:
-        type: string
-        description: >
-          comma-separated list of event descriptions in `<topic>:<uri>` format,
-          that represent a chain of events that caused this event to be emitted.
-      sequence_num:
-        type: integer
-        minimum: 1
-        description: Number of this continuation event in the current sequence.
-
-required:
-  - original_event
-  - continue
-examples:
-  - $schema: { $ref: '#/$id' }
-    meta:
-      stream: change-prop.continue.example
-      dt: '2020-07-01T00:00:00Z'
-    emitter_id: example_emitter_id
-    original_event:
-      example_key: example_value
-    continue:
-      example_key: example_value
-
diff --git a/jsonschema/change-prop/continue/latest b/jsonschema/change-prop/continue/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/change-prop/continue/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/change-prop/continue/latest.yaml b/jsonschema/change-prop/continue/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/change-prop/continue/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/change-prop/retry/1.0.0 b/jsonschema/change-prop/retry/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/change-prop/retry/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/change-prop/retry/1.0.0.yaml b/jsonschema/change-prop/retry/1.0.0.yaml
deleted file mode 100644
index 2ad9bbd..0000000
--- a/jsonschema/change-prop/retry/1.0.0.yaml
+++ /dev/null
@@ -1,75 +0,0 @@
-title: change-prop/retry
-description: Represents a failure in event processing and a request to retry it
-$id: /change-prop/retry/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - emitter_id
-  - meta
-  - original_event
-  - retries_left
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  emitter_id:
-    description: identifies the entity that requested a retry
-    type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  original_event:
-    description: original event that caused a failure
-    type: object
-  reason:
-    description: message describing the reason of the retry
-    type: string
-  retries_left:
-    description: number of retry attempts left for this event
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  triggered_by:
-    description: >
-      comma-separated list of event descriptions in `<topic>:<uri>` format, that
-      represent a chain of events that caused this event to be emitted.
-    type: string
-examples:
-  - $schema: /change-prop/retry/1.0.0
-    emitter_id: example_emitter_id
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: change-prop.retry.example
-    original_event:
-      example_key: example_value
-    retries_left: 1
diff --git a/jsonschema/change-prop/retry/CHANGELOG.md b/jsonschema/change-prop/retry/CHANGELOG.md
deleted file mode 100644
index 9be2786..0000000
--- a/jsonschema/change-prop/retry/CHANGELOG.md
+++ /dev/null
@@ -1,5 +0,0 @@
-### Version 1.0.0
- - Updated to draft-07 new schema conventions.
-
-### Version 2
- - Added `minLength: 1` for required string properties.
\ No newline at end of file
diff --git a/jsonschema/change-prop/retry/current.yaml b/jsonschema/change-prop/retry/current.yaml
deleted file mode 100644
index 696b283..0000000
--- a/jsonschema/change-prop/retry/current.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-title: change-prop/retry
-description: Represents a failure in event processing and a request to retry it
-$id: /change-prop/retry/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/common/1.0.0#
-  - properties:
-      emitter_id:
-        type: string
-        description: identifies the entity that requested a retry
-      retries_left:
-        type: integer
-        description: number of retry attempts left for this event
-      original_event:
-        type: object
-        description: original event that caused a failure
-      reason:
-        type: string
-        description: message describing the reason of the retry
-      triggered_by:
-        type: string
-        description: >
-          comma-separated list of event descriptions in `<topic>:<uri>` format,
-          that represent a chain of events that caused this event to be emitted.
-
-required:
-  - emitter_id
-  - retries_left
-  - original_event
-examples:
-  - $schema: { $ref: '#/$id' }
-    meta:
-      stream: change-prop.retry.example
-      dt: '2020-07-01T00:00:00Z'
-    emitter_id: example_emitter_id
-    retries_left: 1
-    original_event:
-      example_key: example_value
diff --git a/jsonschema/change-prop/retry/latest b/jsonschema/change-prop/retry/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/change-prop/retry/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/change-prop/retry/latest.yaml b/jsonschema/change-prop/retry/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/change-prop/retry/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/README.md b/jsonschema/development/README.md
deleted file mode 100644
index 49377a2..0000000
--- a/jsonschema/development/README.md
+++ /dev/null
@@ -1,9 +0,0 @@
-Schemas can be placed here while they are in 'development' / prototyping phase.
-While in development, any event data created that conforms to these schemas is
-considered ephemeral and can be deleted / lost at any time.  As such,
-we don't have to think as hard about making backwards incompatible changes.
-
-CI will still enforce backwards compatibility, but feel free to make new
-major versions at will as you develop.  When you move out of this development
-namespace, you can start over with brand new schemas at version 1.0.0.
-
diff --git a/jsonschema/development/cirrussearch/page_weighted_tags_change/1.0.0 b/jsonschema/development/cirrussearch/page_weighted_tags_change/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/cirrussearch/page_weighted_tags_change/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/cirrussearch/page_weighted_tags_change/1.0.0.yaml b/jsonschema/development/cirrussearch/page_weighted_tags_change/1.0.0.yaml
deleted file mode 100644
index 5c924fd..0000000
--- a/jsonschema/development/cirrussearch/page_weighted_tags_change/1.0.0.yaml
+++ /dev/null
@@ -1,195 +0,0 @@
-title: development/cirrussearch/page_weighted_tags_change
-description: >
-  Changes (setting and/or clearing) of weighted (scored) tags of a page, see
-  https://wikitech.wikimedia.org/wiki/Search/WeightedTags
-$id: /development/cirrussearch/page_weighted_tags_change/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - dt
-  - meta
-  - page
-  - weighted_tags
-  - wiki_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page:
-    title: fragment/mediawiki/state/entity/page
-    description: Fields for MediaWiki page entity.
-    $id: /fragment/mediawiki/state/entity/page/2.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-      - namespace_id
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-  rev_based:
-    description: >
-      A hint for an event processor that this event has been triggered by new a
-      revision. Only if set to false, the processor may skip merging it with the
-      original page change (and other related events).
-    type: boolean
-  weighted_tags:
-    description: Tags to be set for and/or cleared from the specified page
-    type: object
-    additionalProperties: false
-    properties:
-      clear:
-        description: >
-          A list of tag prefixes (without slash(es)) that will be cleared, see
-          https://wikitech.wikimedia.org/wiki/Search/WeightedTags#Shape_of_the_data_in_elasticsearch
-        type: array
-        items:
-          type: string
-          maxLength: 100
-          minLength: 1
-          pattern: '^[^/]+$'
-        minLength: 1
-      set:
-        description: >
-          A multimap of prefix (without slash(es)) to list of optionally
-          weighted (scored) tags, see
-          https://wikitech.wikimedia.org/wiki/Search/WeightedTags#Shape_of_the_data_in_elasticsearch
-        type: object
-        additionalProperties:
-          type: array
-          items:
-            type: object
-            additionalProperties: false
-            required:
-              - tag
-            properties:
-              score:
-                type: number
-                maximum: 1
-                minimum: 0
-              tag:
-                type: string
-                minLength: 1
-          minLength: 1
-        minProperties: 1
-    minProperties: 1
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-examples:
-  - $schema: /development/cirrussearch/page_weighted_tags_change/1.0.0
-    dt: '2024-07-22T00:00:00.0Z'
-    meta:
-      domain: examplewiki
-      dt: '2024-07-22T00:00:00.0Z'
-      stream: cirrussearch.page_weighted_tags_change
-    page:
-      namespace_id: 0
-      page_id: 42
-      page_title: Set-only example
-    weighted_tags:
-      set:
-        tag.group.A:
-          - score: 0.5
-            tag: A.1
-          - tag: A.2
-        tag.group.B:
-          - tag: B.1
-    wiki_id: example
-  - $schema: /development/cirrussearch/page_weighted_tags_change/1.0.0
-    dt: '2024-07-22T00:00:00.0Z'
-    meta:
-      domain: examplewiki
-      dt: '2024-07-22T00:00:00.0Z'
-      stream: cirrussearch.page_weighted_tags_change
-    page:
-      namespace_id: 0
-      page_id: 42
-      page_title: Clear-only example
-    weighted_tags:
-      clear:
-        - tag.group.B
-    wiki_id: example
-  - $schema: /development/cirrussearch/page_weighted_tags_change/1.0.0
-    dt: '2024-07-22T00:00:00.0Z'
-    meta:
-      domain: examplewiki
-      dt: '2024-07-22T00:00:00.0Z'
-      stream: cirrussearch.page_weighted_tags_change
-    page:
-      namespace_id: 0
-      page_id: 42
-      page_title: Set and Clear example
-    weighted_tags:
-      clear:
-        - tag.group.C
-      set:
-        tag.group.A:
-          - tag: A.1
-    wiki_id: example
diff --git a/jsonschema/development/cirrussearch/page_weighted_tags_change/current.yaml b/jsonschema/development/cirrussearch/page_weighted_tags_change/current.yaml
deleted file mode 100644
index 4662e8b..0000000
--- a/jsonschema/development/cirrussearch/page_weighted_tags_change/current.yaml
+++ /dev/null
@@ -1,122 +0,0 @@
-title: development/cirrussearch/page_weighted_tags_change
-description: >
-  Changes (setting and/or clearing) of weighted (scored) tags of a page,
-  see https://wikitech.wikimedia.org/wiki/Search/WeightedTags
-$id: /development/cirrussearch/page_weighted_tags_change/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - page
-  - wiki_id
-  - weighted_tags
-allOf:
-  - $ref: /fragment/common/2.0.0
-properties:
-  page:
-    allOf:
-      - $ref: /fragment/mediawiki/state/entity/page/2.0.0
-    required:
-      - page_id
-      - page_title
-      - namespace_id
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-  rev_based:
-    description: >
-      A hint for an event processor that this event has been triggered by new a revision.
-      Only if set to false, the processor may skip merging it with the original page change (and other related events).
-    type: boolean
-  weighted_tags:
-    description: Tags to be set for and/or cleared from the specified page
-    type: object
-    additionalProperties: false
-    minProperties: 1
-    properties:
-      set:
-        description: >
-          A multimap of prefix (without slash(es)) to list of optionally weighted (scored) tags,
-          see https://wikitech.wikimedia.org/wiki/Search/WeightedTags#Shape_of_the_data_in_elasticsearch
-        type: object
-        minProperties: 1
-        additionalProperties:
-          type: array
-          minLength: 1
-          items:
-            type: object
-            additionalProperties: false
-            properties:
-              tag:
-                type: string
-                minLength: 1
-              score:
-                type: number
-                minimum: 0
-                maximum: 1
-            required:
-              - tag
-      clear:
-        description: >
-          A list of tag prefixes (without slash(es)) that will be cleared,
-          see https://wikitech.wikimedia.org/wiki/Search/WeightedTags#Shape_of_the_data_in_elasticsearch
-        type: array
-        items:
-          type: string
-          pattern: "^[^/]+$"
-          minLength: 1
-          maxLength: 100
-        minLength: 1
-examples:
-  - $schema: /development/cirrussearch/page_weighted_tags_change/1.0.0
-    dt: '2024-07-22T00:00:00.0Z'
-    meta:
-      domain: examplewiki
-      dt: '2024-07-22T00:00:00.0Z'
-      stream: cirrussearch.page_weighted_tags_change
-    page:
-      page_id: 42
-      page_title: Set-only example
-      namespace_id: 0
-    wiki_id: example
-    weighted_tags:
-      set:
-        tag.group.A:
-          - tag: A.1
-            score: 0.5
-          - tag: A.2
-        tag.group.B:
-          - tag: B.1
-  - $schema: /development/cirrussearch/page_weighted_tags_change/1.0.0
-    dt: '2024-07-22T00:00:00.0Z'
-    meta:
-      domain: examplewiki
-      dt: '2024-07-22T00:00:00.0Z'
-      stream: cirrussearch.page_weighted_tags_change
-    page:
-      page_id: 42
-      page_title: Clear-only example
-      namespace_id: 0
-    wiki_id: example
-    weighted_tags:
-      clear:
-        - tag.group.B
-  - $schema: /development/cirrussearch/page_weighted_tags_change/1.0.0
-    dt: '2024-07-22T00:00:00.0Z'
-    meta:
-      domain: examplewiki
-      dt: '2024-07-22T00:00:00.0Z'
-      stream: cirrussearch.page_weighted_tags_change
-    page:
-      page_id: 42
-      page_title: Set and Clear example
-      namespace_id: 0
-    wiki_id: example
-    weighted_tags:
-      set:
-        tag.group.A:
-          - tag: A.1
-      clear:
-          - tag.group.C
diff --git a/jsonschema/development/cirrussearch/page_weighted_tags_change/latest b/jsonschema/development/cirrussearch/page_weighted_tags_change/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/cirrussearch/page_weighted_tags_change/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/cirrussearch/page_weighted_tags_change/latest.yaml b/jsonschema/development/cirrussearch/page_weighted_tags_change/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/cirrussearch/page_weighted_tags_change/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/cirrussearch/update_pipeline/fetch_error/1.0.0 b/jsonschema/development/cirrussearch/update_pipeline/fetch_error/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/cirrussearch/update_pipeline/fetch_error/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/cirrussearch/update_pipeline/fetch_error/1.0.0.yaml b/jsonschema/development/cirrussearch/update_pipeline/fetch_error/1.0.0.yaml
deleted file mode 100644
index 77ec6ae..0000000
--- a/jsonschema/development/cirrussearch/update_pipeline/fetch_error/1.0.0.yaml
+++ /dev/null
@@ -1,155 +0,0 @@
-title: development/cirrussearch/update_pipeline/fetch_error
-description: |
-  Indicates a failure when fetching the CirrusSearch document from mediawiki
-$id: /development/cirrussearch/update_pipeline/fetch_error/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - dt
-  - emitter_id
-  - error_type
-  - message
-  - meta
-  - namespace_id
-  - original_event_stream
-  - original_event_time
-  - original_ingestion_time
-  - page_id
-  - wiki_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  emitter_id:
-    description: identifies the entity where a fatal failure occured
-    type: string
-  error_type:
-    description: |
-      the type of the error, for example the class name of the exception.
-    type: string
-  errored_schema_uri:
-    description: >
-      $schema URI of event that caused the error. This is the value of
-      raw_event's $schema if it is extractable when the error was encountered.
-    type: string
-  errored_stream_name:
-    description: >
-      meta.stream name of the event that caused the error. This is the value of
-      raw_event's meta.stream if it is extractable when the error was
-      encountered.
-    type: string
-  message:
-    description: message describing an error
-    type: string
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  namespace_id:
-    description: The id of the namespace this page belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  original_event_stream:
-    description: Name of the stream (dataset) that the event causing the failure belongs in
-    type: string
-    minLength: 1
-  original_event_time:
-    description: >
-      ISO-8601 formatted timestamp of when the event causing the failure
-      occurred/was generated in UTC), AKA 'event time'.
-    type: string
-    format: date-time
-    maxLength: 128
-  original_ingestion_time:
-    description: >-
-      ISO-8601 formatted timestamp of when the event causing the failure entered
-      the pipeline.
-    type: string
-    format: date-time
-    maxLength: 128
-  page_id:
-    description: The (database) page ID of the page.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-  raw_event:
-    description: string encoded original event
-    type: string
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  stack:
-    description: stack trace of the error (optional)
-    type: string
-  triggered_by:
-    description: >
-      comma-separated list of event descriptions in `<topic>:<uri>` format, that
-      represent a chain of events that caused this event to be emitted.
-    type: string
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-examples:
-  - $schema: /development/cirrussearch/update_pipeline/fetch_error/1.0.0
-    dt: '2022-11-11T00:00:00Z'
-    emitter_id: eqiad-cirrussearch-consumer-cloudelastic
-    error_type: NOT_FOUND
-    message: Cannot find page Test page
-    meta:
-      domain: test.wikipedia.org
-      dt: '2022-11-11T00:00:10Z'
-      stream: cirrussearch-update-pipeline-fetch-failure
-    namespace_id: 0
-    original_event_stream: mediawiki.page-state
-    original_event_time: '2022-11-11T00:00:00Z'
-    original_ingestion_time: '2022-11-11T00:00:05Z'
-    page_id: 123
-    page_title: Test Page
-    wiki_id: testwiki
diff --git a/jsonschema/development/cirrussearch/update_pipeline/fetch_error/CHANGELOG.md b/jsonschema/development/cirrussearch/update_pipeline/fetch_error/CHANGELOG.md
deleted file mode 100644
index 7c77b98..0000000
--- a/jsonschema/development/cirrussearch/update_pipeline/fetch_error/CHANGELOG.md
+++ /dev/null
@@ -1,2 +0,0 @@
-### Version 1.0.0
-- Initial version
\ No newline at end of file
diff --git a/jsonschema/development/cirrussearch/update_pipeline/fetch_error/current.yaml b/jsonschema/development/cirrussearch/update_pipeline/fetch_error/current.yaml
deleted file mode 100644
index 660b7b9..0000000
--- a/jsonschema/development/cirrussearch/update_pipeline/fetch_error/current.yaml
+++ /dev/null
@@ -1,67 +0,0 @@
-title: development/cirrussearch/update_pipeline/fetch_error
-description: >
-  Indicates a failure when fetching the CirrusSearch document from mediawiki
-$id: /development/cirrussearch/update_pipeline/fetch_error/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-
-required:
-  - wiki_id
-  - namespace_id
-  - page_id
-  - error_type
-  - original_event_stream
-  - original_event_time
-  - original_ingestion_time
-
-allOf:
-  - $ref: /error/2.1.0#
-
-properties:
-  wiki_id:
-    $ref: /fragment/mediawiki/state/change/page/1.1.0#/properties/wiki_id
-  namespace_id:
-    $ref: /fragment/mediawiki/state/entity/page/2.0.0#/properties/namespace_id
-  page_id:
-    $ref: /fragment/mediawiki/state/entity/page/2.0.0#/properties/page_id
-  page_title:
-    $ref: /fragment/mediawiki/state/entity/page/2.0.0#/properties/page_title
-  rev_id:
-    $ref: /fragment/mediawiki/state/entity/revision/1.0.0#/properties/rev_id
-
-  original_event_stream:
-    type: string
-    description: Name of the stream (dataset) that the event causing the failure belongs in
-    minLength: 1
-
-  original_ingestion_time:
-    type: string
-    format: date-time
-    maxLength: 128
-    description: ISO-8601 formatted timestamp of when the event causing the failure entered the pipeline.
-
-  original_event_time:
-    type: string
-    format: date-time
-    maxLength: 128
-    description: >
-      ISO-8601 formatted timestamp of when the event causing the failure occurred/was generated
-      in UTC), AKA 'event time'.
-
-examples:
-  - $schema: { $ref: "#/$id" }
-    meta:
-      stream: cirrussearch-update-pipeline-fetch-failure
-      dt: '2022-11-11T00:00:10Z'
-      domain: test.wikipedia.org
-    dt: '2022-11-11T00:00:00Z'
-    emitter_id: eqiad-cirrussearch-consumer-cloudelastic
-    message: Cannot find page Test page
-    wiki_id: testwiki
-    page_id: 123
-    page_title: Test Page
-    namespace_id: 0
-    error_type: NOT_FOUND
-    original_event_stream: mediawiki.page-state
-    original_event_time: '2022-11-11T00:00:00Z'
-    original_ingestion_time: '2022-11-11T00:00:05Z'
diff --git a/jsonschema/development/cirrussearch/update_pipeline/fetch_error/latest b/jsonschema/development/cirrussearch/update_pipeline/fetch_error/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/cirrussearch/update_pipeline/fetch_error/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/cirrussearch/update_pipeline/fetch_error/latest.yaml b/jsonschema/development/cirrussearch/update_pipeline/fetch_error/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/cirrussearch/update_pipeline/fetch_error/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/cirrussearch/update_pipeline/update/1.0.0 b/jsonschema/development/cirrussearch/update_pipeline/update/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/cirrussearch/update_pipeline/update/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/cirrussearch/update_pipeline/update/1.0.0.yaml b/jsonschema/development/cirrussearch/update_pipeline/update/1.0.0.yaml
deleted file mode 100644
index fc09e94..0000000
--- a/jsonschema/development/cirrussearch/update_pipeline/update/1.0.0.yaml
+++ /dev/null
@@ -1,546 +0,0 @@
-title: development/cirrussearch/update_pipeline/update
-description: Internal event for page updates handled by CirrusSearch
-$id: /development/cirrussearch/update_pipeline/update/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - change_type
-  - cirrussearch_cluster_group
-  - cirrussearch_index_name
-  - dt
-  - meta
-  - namespace_id
-  - page_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  change_type:
-    type: string
-    enum:
-      - PAGE_DELETE
-      - PAGE_RERENDER
-      - PAGE_RERENDER_UPSERT
-      - REDIRECT_UPDATE
-      - REV_BASED_UPDATE
-      - TAGS_UPDATE
-  cirrussearch_cluster_group:
-    description: The elastic search cluster group
-    type: string
-    minLength: 1
-  cirrussearch_fetched_at:
-    description: UTC event datetime in ISO-8601 format
-    type: string
-    format: date-time
-    maxLength: 128
-  cirrussearch_index_name:
-    description: The elastic search index name
-    type: string
-    minLength: 1
-  cirrussearch_noop_fields:
-    description: >-
-      Overrides of the fields object for the elastic search super-detect-noop
-      plugin.
-    type: object
-    additionalProperties: false
-    properties:
-      redirect:
-        type: object
-        additionalProperties: false
-        properties:
-          add:
-            type: array
-            items:
-              description: Redirect modeled for CirrusSearch index
-              type: object
-              required:
-                - namespace
-                - title
-              properties:
-                title:
-                  description: The normalized title of the page.
-                  type: string
-                  minLength: 1
-                namespace:
-                  description: The id of the namespace this page belongs to.
-                  type: integer
-                  maximum: 9007199254740991
-                  minimum: 0
-          max_size:
-            type: integer
-            maximum: 9007199254740991
-            minimum: 1
-          remove:
-            type: array
-            items:
-              description: Redirect modeled for CirrusSearch index
-              type: object
-              required:
-                - namespace
-                - title
-              properties:
-                title:
-                  description: The normalized title of the page.
-                  type: string
-                  minLength: 1
-                namespace:
-                  description: The id of the namespace this page belongs to.
-                  type: integer
-                  maximum: 9007199254740991
-                  minimum: 0
-  cirrussearch_noop_hints:
-    description: Handlers for the elastic search super-detect-noop plugin.
-    type: object
-    additionalProperties:
-      type: string
-  domain:
-    description: Domain of the wiki project
-    type: string
-    minLength: 1
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  fields:
-    description: >-
-      Intermediate document from cirrus search for elastic search, see
-      https://www.mediawiki.org/wiki/Extension:CirrusSearch/Schema
-    type: object
-    properties:
-      title:
-        type: string
-      auxiliary_text:
-        type: array
-        items:
-          type: string
-      category:
-        type: array
-        items:
-          type: string
-      content_model:
-        type: string
-      coordinates:
-        type: array
-        items:
-          type: object
-          properties:
-            type:
-              type: string
-            coord:
-              type: object
-              additionalProperties:
-                type: number
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-            country:
-              type: string
-            dim:
-              type: integer
-              maximum: 9007199254740991
-              minimum: 0
-            globe:
-              type: string
-            name:
-              type: string
-            primary:
-              type: boolean
-            region:
-              type: string
-      create_timestamp:
-        description: UTC event datetime in ISO-8601 format
-        type: string
-        format: date-time
-        maxLength: 128
-      defaultsort:
-        type: string
-      descriptions:
-        type: object
-        additionalProperties:
-          type: array
-          items:
-            type: string
-      display_title:
-        type: string
-      external_link:
-        type: array
-        items:
-          type: string
-      extra_source:
-        type: string
-      file_bits:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      file_height:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      file_media_type:
-        type: string
-      file_mime:
-        type: string
-      file_resolution:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      file_size:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      file_text:
-        type: string
-      file_width:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      heading:
-        type: array
-        items:
-          type: string
-      incoming_links:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      label_count:
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      labels:
-        type: object
-        additionalProperties:
-          type: array
-          items:
-            type: string
-      labels_all:
-        type: array
-        items:
-          type: string
-      language:
-        type: string
-      lemma:
-        type: array
-        items:
-          type: string
-      lexeme_forms:
-        type: array
-        items:
-          type: object
-          properties:
-            features:
-              type: array
-              items:
-                type: string
-            id:
-              type: string
-            representation:
-              type: array
-              items:
-                type: string
-      lexeme_language:
-        type: object
-        properties:
-          code:
-            type: string
-          entity:
-            type: string
-      lexical_category:
-        type: string
-      local_sites_with_dupe:
-        type: array
-        items:
-          type: string
-      namespace:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      namespace_text:
-        type: string
-      opening_text:
-        type: string
-      outgoing_link:
-        type: array
-        items:
-          type: string
-      page_id:
-        description: The page ID of the page this revision belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 1
-      popularity_score:
-        type: number
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      redirect:
-        type: array
-        items:
-          description: Redirect modeled for CirrusSearch index
-          type: object
-          required:
-            - namespace
-            - title
-          properties:
-            title:
-              description: The normalized title of the page.
-              type: string
-              minLength: 1
-            namespace:
-              description: The id of the namespace this page belongs to.
-              type: integer
-              maximum: 9007199254740991
-              minimum: 0
-      sitelink_count:
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      snapshot:
-        type: string
-      source_text:
-        type: string
-      statement_count:
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      statement_keywords:
-        type: array
-        items:
-          type: string
-      template:
-        type: array
-        items:
-          type: string
-      text:
-        type: string
-      text_bytes:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      timestamp:
-        description: UTC event datetime in ISO-8601 format
-        type: string
-        format: date-time
-        maxLength: 128
-      version:
-        description: The (database) revision ID.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      weighted_tags:
-        type: array
-        items:
-          type: string
-      wiki:
-        type: string
-      wikibase_item:
-        type: string
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  namespace_id:
-    description: The id of the namespace this page belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_id:
-    description: The (database) page ID of the page.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-examples:
-  - $schema: /development/cirrussearch/update_pipeline/update/1.0.0
-    change_type: PAGE_DELETE
-    cirrussearch_cluster_group: dolor
-    cirrussearch_fetched_at: '2021-01-01T00:00:00.0Z'
-    cirrussearch_index_name: dolor
-    cirrussearch_noop_fields:
-      redirect:
-        add:
-          - title: dolor
-            namespace: 1351079888211148
-        max_size: 1351079888211149
-        remove:
-          - title: dolor
-            namespace: 1351079888211148
-    cirrussearch_noop_hints:
-      dolorb: dolor
-    domain: dolor
-    dt: '2021-01-01T00:00:00.0Z'
-    fields:
-      title: dolor
-      auxiliary_text:
-        - dolor
-      category:
-        - dolor
-      content_model: dolor
-      coordinates:
-        - type: dolor
-          coord:
-            dolorb: -6305039478318694
-          country: dolor
-          dim: 1351079888211148
-          globe: dolor
-          name: dolor
-          primary: false
-          region: dolor
-      create_timestamp: '2021-01-01T00:00:00.0Z'
-      defaultsort: dolor
-      descriptions:
-        dolorb:
-          - dolor
-      display_title: dolor
-      external_link:
-        - dolor
-      extra_source: dolor
-      file_bits: 1351079888211148
-      file_height: 1351079888211148
-      file_media_type: dolor
-      file_mime: dolor
-      file_resolution: 1351079888211148
-      file_size: 1351079888211148
-      file_text: dolor
-      file_width: 1351079888211148
-      heading:
-        - dolor
-      incoming_links: 1351079888211148
-      label_count: -6305039478318694
-      labels:
-        dolorb:
-          - dolor
-      labels_all:
-        - dolor
-      language: dolor
-      lemma:
-        - dolor
-      lexeme_forms:
-        - features:
-            - dolor
-          id: dolor
-          representation:
-            - dolor
-      lexeme_language:
-        code: dolor
-        entity: dolor
-      lexical_category: dolor
-      local_sites_with_dupe:
-        - dolor
-      namespace: 1351079888211148
-      namespace_text: dolor
-      opening_text: dolor
-      outgoing_link:
-        - dolor
-      page_id: 1351079888211149
-      popularity_score: -6305039478318694
-      redirect:
-        - title: dolor
-          namespace: 1351079888211148
-      sitelink_count: -6305039478318694
-      snapshot: dolor
-      source_text: dolor
-      statement_count: -6305039478318694
-      statement_keywords:
-        - dolor
-      template:
-        - dolor
-      text: dolor
-      text_bytes: 1351079888211148
-      timestamp: '2021-01-01T00:00:00.0Z'
-      version: 1351079888211148
-      weighted_tags:
-        - dolor
-      wiki: dolor
-      wikibase_item: dolor
-    meta:
-      domain: dolor
-      dt: '2021-01-01T00:00:00.0Z'
-      id: dolor
-      request_id: dolor
-      stream: dolor
-      uri: 'http://example.org'
-    namespace_id: 1351079888211148
-    page_id: 1351079888211148
-    page_title: dolor
-    rev_id: 1351079888211149
-    wiki_id: dolor
-definitions:
-  redirect:
-    description: Redirect modeled for CirrusSearch index
-    type: object
-    required:
-      - namespace
-      - title
-    properties:
-      title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      namespace:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-  redirect_array:
-    type: array
-    items:
-      description: Redirect modeled for CirrusSearch index
-      type: object
-      required:
-        - namespace
-        - title
-      properties:
-        title:
-          description: The normalized title of the page.
-          type: string
-          minLength: 1
-        namespace:
-          description: The id of the namespace this page belongs to.
-          type: integer
-          maximum: 9007199254740991
-          minimum: 0
diff --git a/jsonschema/development/cirrussearch/update_pipeline/update/current.yaml b/jsonschema/development/cirrussearch/update_pipeline/update/current.yaml
deleted file mode 100644
index 624ff11..0000000
--- a/jsonschema/development/cirrussearch/update_pipeline/update/current.yaml
+++ /dev/null
@@ -1,294 +0,0 @@
-title: development/cirrussearch/update_pipeline/update
-description: Internal event for page updates handled by CirrusSearch
-$id: /development/cirrussearch/update_pipeline/update/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - change_type
-  - namespace_id
-  - page_id
-allOf:
-  - $ref: /fragment/common/2.0.0
-  - $ref: /fragment/cirrussearch/index/1.0.0
-properties:
-  change_type:
-    type: string
-    enum:
-      - PAGE_DELETE
-      - PAGE_RERENDER
-      - PAGE_RERENDER_UPSERT
-      - REDIRECT_UPDATE
-      - REV_BASED_UPDATE
-      - TAGS_UPDATE
-  namespace_id:
-    $ref: /fragment/mediawiki/state/entity/page/2.0.0#/properties/namespace_id
-  page_id:
-    $ref: /fragment/mediawiki/state/entity/page/2.0.0#/properties/page_id
-  page_title:
-    $ref: /fragment/mediawiki/state/entity/page/2.0.0#/properties/page_title
-  wiki_id:
-    $ref: /fragment/mediawiki/state/change/page/1.1.0#/properties/wiki_id
-  rev_id:
-    $ref: /fragment/mediawiki/state/entity/revision/1.0.0#/properties/rev_id
-  domain:
-    description: Domain of the wiki project
-    type: string
-    minLength: 1
-  cirrussearch_cluster_group:
-    description: The elastic search cluster group
-    type: string
-    minLength: 1
-  cirrussearch_index_name:
-    description: The elastic search index name
-    type: string
-    minLength: 1
-  cirrussearch_noop_hints:
-    type: object
-    description: Handlers for the elastic search super-detect-noop plugin.
-    additionalProperties:
-      type: string
-  cirrussearch_noop_fields:
-    description: Overrides of the fields object for the elastic search super-detect-noop plugin.
-    type: object
-    additionalProperties: false
-    properties:
-      redirect:
-        type: object
-        additionalProperties: false
-        properties:
-          add:
-            $ref: ./#/definitions/redirect_array
-          remove:
-            $ref: ./#/definitions/redirect_array
-          max_size:
-            type: integer
-            maximum: 9007199254740991
-            minimum: 1
-  cirrussearch_fetched_at:
-    description: 'UTC event datetime in ISO-8601 format'
-    type: string
-    format: date-time
-    maxLength: 128
-  fields:
-    description: Intermediate document from cirrus search for elastic search, see https://www.mediawiki.org/wiki/Extension:CirrusSearch/Schema
-    type: object
-    properties:
-      auxiliary_text:
-        type: array
-        items:
-          type: string
-      category:
-        type: array
-        items:
-          type: string
-      content_model:
-        type: string
-      coordinates:
-        type: array
-        items:
-          type: object
-          properties:
-            coord:
-              type: object
-              additionalProperties:
-                type: number
-            country:
-              type: string
-            dim:
-              type: integer
-              maximum: 9007199254740991
-              minimum: 0
-            globe:
-              type: string
-            name:
-              type: string
-            primary:
-              type: boolean
-            region:
-              type: string
-            type:
-              type: string
-      create_timestamp:
-        description: 'UTC event datetime in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      defaultsort:
-        type: string
-      descriptions:
-        type: object
-        additionalProperties:
-          type: array
-          items:
-            type: string
-      display_title:
-        type: string
-      external_link:
-        type: array
-        items:
-          type: string
-      extra_source:
-        type: string
-      file_bits:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      file_height:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      file_media_type:
-        type: string
-      file_mime:
-        type: string
-      file_resolution:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      file_size:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      file_text:
-        type: string
-      file_width:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      heading:
-        type: array
-        items:
-          type: string
-      incoming_links:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      label_count:
-        type: integer
-      labels:
-        type: object
-        additionalProperties:
-          type: array
-          items:
-            type: string
-      labels_all:
-        type: array
-        items:
-          type: string
-      language:
-        type: string
-      lemma:
-        type: array
-        items:
-          type: string
-      lexeme_forms:
-        type: array
-        items:
-          type: object
-          properties:
-            id:
-              type: string
-            representation:
-              type: array
-              items:
-                type: string
-            features:
-              type: array
-              items:
-                type: string
-      lexeme_language:
-        type: object
-        properties:
-          entity:
-            type: string
-          code:
-            type: string
-      lexical_category:
-        type: string
-      local_sites_with_dupe:
-        type: array
-        items:
-          type: string
-      namespace:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      namespace_text:
-        type: string
-      opening_text:
-        type: string
-      outgoing_link:
-        type: array
-        items:
-          type: string
-      page_id:
-        description: The page ID of the page this revision belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 1
-      popularity_score:
-        type: number
-      redirect:
-        type: array
-        items:
-          $ref: ./#/definitions/redirect
-      snapshot:
-        type: string
-      source_text:
-        type: string
-      sitelink_count:
-        type: integer
-      statement_count:
-        type: integer
-      statement_keywords:
-        type: array
-        items:
-          type: string
-      template:
-        type: array
-        items:
-          type: string
-      text:
-        type: string
-      text_bytes:
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      timestamp:
-        description: 'UTC event datetime in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      title:
-        type: string
-      version:
-        description: The (database) revision ID.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      weighted_tags:
-        type: array
-        items:
-          type: string
-      wiki:
-        type: string
-      wikibase_item:
-        type: string
-definitions:
-  redirect:
-    type: object
-    description: Redirect modeled for CirrusSearch index
-    required:
-      - namespace
-      - title
-    properties:
-      # We use namespace instead of namespace_id as this is the expected format inside the CirrusSearch index
-      namespace:
-        $ref: /fragment/mediawiki/state/entity/page/2.0.0#/properties/namespace_id
-      # We use title instead of page_title as this is the expected format inside the CirrusSearch index
-      title:
-        $ref: /fragment/mediawiki/state/entity/page/2.0.0#/properties/page_title
-  redirect_array:
-    type: array
-    items:
-      $ref: "#/definitions/redirect"
diff --git a/jsonschema/development/cirrussearch/update_pipeline/update/latest b/jsonschema/development/cirrussearch/update_pipeline/update/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/cirrussearch/update_pipeline/update/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/cirrussearch/update_pipeline/update/latest.yaml b/jsonschema/development/cirrussearch/update_pipeline/update/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/cirrussearch/update_pipeline/update/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/network/probe/1.0.0 b/jsonschema/development/network/probe/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/network/probe/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/network/probe/1.0.0.yaml b/jsonschema/development/network/probe/1.0.0.yaml
deleted file mode 100644
index f6dc9c0..0000000
--- a/jsonschema/development/network/probe/1.0.0.yaml
+++ /dev/null
@@ -1,278 +0,0 @@
-title: development/network/probe
-description: >
-  This schema describes the format of the report sent from the browser after
-  calculating various  network parameters. The library used to calculate these
-  parameters works similar to Probnik and  borrows many terms from it. The
-  library takes a json recipe as input which contains names and  http endpoints
-  of various datacenters. The library then makes some requests to each of the 
-  datacenter and records various timings involved in making the requests. This
-  data is then combined  to compile a report and sent to EventGate. The data can
-  then be used to rank the datacenters based  on the performance for a
-  particular user/IP and also update the GeoIP mappings if needed. See
-  https://phabricator.wikimedia.org/T332024
-$id: /development/network/probe/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-  - dt
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  ctx:
-    description: Context passed by the recipe. This is same as 'ctx' field in the recipe.
-    type: object
-    additionalProperties:
-      type: string
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  http:
-    type: object
-    properties:
-      client_ip:
-        description: >-
-          The http client's IP address, usually set from the X-Client-IP header,
-          the value of which is extracted from X-Forwarded-For.
-        type: string
-      has_cookies:
-        description: True if the http request has any cookies set
-        type: boolean
-      method:
-        description: 'The HTTP request method (GET, POST, etc.)'
-        type: string
-      protocol:
-        description: The protocol used for the request (HTTP or HTTPS)
-        type: string
-      request_headers:
-        description: 'Request headers sent by the client.  E.g. user-agent, etc.'
-        type: object
-        additionalProperties:
-          type: string
-      response_headers:
-        description: Response headers sent back to the client (when known).
-        type: object
-        additionalProperties:
-          type: string
-      status_code:
-        description: The HTTP status code returned for this request (when known)
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  recipe_name:
-    description: Name of the recipe
-    type: string
-  recipe_type:
-    description: Type of the recipe. Example http_get
-    type: string
-  reports:
-    description: >-
-      The list containing reports of all targets. A report may contain data of
-      multiple pulses.
-    type: array
-    items:
-      description: The report of a particular target/datacenter
-      type: object
-      properties:
-        pulses:
-          description: >-
-            The list containing details of all pulses. A pulse represents a
-            single request to the target_url.
-          type: array
-          items:
-            description: The detail of a particular pulse
-            type: object
-            properties:
-              actual_bytes:
-                description: Actual data size in bytes (decodedBodySize)
-                type: number
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-              dns_time_ms:
-                description: >-
-                  DNS resolution time in ms (domainLookupEnd -
-                  domainLookupStart)
-                type: number
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-              duration_ms:
-                description: Duration of the request in ms (duration)
-                type: number
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-              pulse_identifier:
-                description: Alphanumeric string used to uniquely identify each pulse
-                type: string
-              pulse_number:
-                description: Pulse number
-                type: number
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-              redirect_time_ms:
-                description: Redirection time in ms (redirectStart - redirectEnd)
-                type: number
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-              request_time_ms:
-                description: Request time in ms (responseStart - requestStart)
-                type: number
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-              response_time_ms:
-                description: Response time in ms (responseEnd - responseStart)
-                type: number
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-              status_code:
-                description: Status of the request (responseStatus)
-                type: number
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-              tcp_time_ms:
-                description: >-
-                  TCP connection time in ms (secureConnectionStart -
-                  connectStart)
-                type: number
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-              tls_time_ms:
-                description: TLS handshake time in ms (connectEnd - secureConnectionStart)
-                type: number
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-              transfer_bytes:
-                description: Transfer data size in bytes (encodedBodySize)
-                type: number
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-              ttfb_time_ms:
-                description: Time to first byte in ms (responseStart - startTime)
-                type: number
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-        target_name:
-          description: 'Name of the target. Example eqiad, eqsin, etc'
-          type: string
-        target_url:
-          description: >-
-            URL of the target. Example
-            https://measure-eqiad.wikimedia.org/measure
-          type: string
-examples:
-  - $schema: /development/network/probe/1.0.0
-    ctx:
-      server: test
-      ts: '1682742173938'
-    dt: '2023-04-29T04:22:57.466Z'
-    http:
-      client_ip: 172.19.0.1
-      request_headers:
-        user-agent: >-
-          Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36
-          (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36
-    meta:
-      domain: localhost
-      dt: '2023-04-29T04:22:58.552Z'
-      id: 3e0bd919-d12f-47e1-916f-3841115beb90
-      request_id: 857a7380-e645-11ed-8647-7df7a5373a09
-      stream: development.network.probe
-    recipe_name: Latency Test
-    recipe_type: http_get
-    reports:
-      - pulses:
-          - actual_bytes: 0
-            dns_time_ms: 14
-            duration_ms: 1102
-            pulse_identifier: 5ma1j0p36irtiqaa6m3a5am3
-            pulse_number: 0
-            redirect_time_ms: 0
-            request_time_ms: 399
-            response_time_ms: 1
-            status_code: 200
-            tcp_time_ms: 326
-            tls_time_ms: 362
-            transfer_bytes: 0
-            ttfb_ms: 1102
-          - actual_bytes: 0
-            dns_time_ms: 0
-            duration_ms: 341
-            pulse_identifier: bb4oat8n47h3w9ww013vrefp
-            pulse_number: 1
-            redirect_time_ms: 0
-            request_time_ms: 339
-            response_time_ms: 1
-            status_code: 200
-            tcp_time_ms: 0
-            tls_time_ms: 0
-            transfer_bytes: 0
-            ttfb_ms: 341
-        target_name: eqiad
-        target_url: 'https://measure-eqiad.wikimedia.org/measure'
-      - pulses:
-          - actual_bytes: 0
-            dns_time_ms: 17
-            duration_ms: 477
-            pulse_identifier: igaisoi8vtiozrxjodyquwkh
-            pulse_number: 0
-            redirect_time_ms: 0
-            request_time_ms: 164
-            response_time_ms: 1
-            status_code: 200
-            tcp_time_ms: 145
-            tls_time_ms: 150
-            transfer_bytes: 0
-            ttfb_ms: 476
-          - actual_bytes: 0
-            dns_time_ms: 0
-            duration_ms: 153
-            pulse_identifier: vkmpozj04xlbhht3xl1m29r0
-            pulse_number: 1
-            redirect_time_ms: 0
-            request_time_ms: 150
-            response_time_ms: 1
-            status_code: 200
-            tcp_time_ms: 0
-            tls_time_ms: 0
-            transfer_bytes: 0
-            ttfb_ms: 152
-        target_name: eqsin
-        target_url: 'https://measure-eqsin.wikimedia.org/measure'
diff --git a/jsonschema/development/network/probe/current.yaml b/jsonschema/development/network/probe/current.yaml
deleted file mode 100644
index 25dd069..0000000
--- a/jsonschema/development/network/probe/current.yaml
+++ /dev/null
@@ -1,96 +0,0 @@
-title: development/network/probe
-
-description: >
-  This schema describes the format of the report sent from the browser after calculating various 
-  network parameters. The library used to calculate these parameters works similar to Probnik and 
-  borrows many terms from it. The library takes a json recipe as input which contains names and 
-  http endpoints of various datacenters. The library then makes some requests to each of the 
-  datacenter and records various timings involved in making the requests. This data is then combined 
-  to compile a report and sent to EventGate. The data can then be used to rank the datacenters based 
-  on the performance for a particular user/IP and also update the GeoIP mappings if needed.
-  See https://phabricator.wikimedia.org/T332024
-
-$id: /development/network/probe/1.0.0
-
-$schema: https://json-schema.org/draft-07/schema#
-
-type: object
-additionalProperties: false
-allOf:
-  - $ref: /fragment/common/2.0.0#
-  - $ref: /fragment/http/1.2.0#
-  - $ref: /fragment/http/client_ip/1.0.0#
-properties:
-  recipe_name:
-    type: string
-    description: Name of the recipe
-  recipe_type:
-    type: string
-    description: Type of the recipe. Example http_get
-  ctx:
-    type: object
-    description: Context passed by the recipe. This is same as 'ctx' field in the recipe.
-    additionalProperties:
-      type: string
-  reports:
-    type: array
-    description: The list containing reports of all targets. A report may contain data of multiple pulses.
-    items:
-      type: object
-      description: The report of a particular target/datacenter
-      properties:
-        target_name:
-          type: string
-          description: Name of the target. Example eqiad, eqsin, etc
-        target_url:
-          type: string
-          description: URL of the target. Example https://measure-eqiad.wikimedia.org/measure
-        pulses:
-          type: array
-          description: The list containing details of all pulses. A pulse represents a single request to the target_url.
-          items:
-            type: object
-            description: The detail of a particular pulse
-            properties:
-              redirect_time_ms:
-                type: number
-                description: Redirection time in ms (redirectStart - redirectEnd)
-              dns_time_ms:
-                type: number
-                description: DNS resolution time in ms (domainLookupEnd - domainLookupStart)
-              tcp_time_ms:
-                type: number
-                description: TCP connection time in ms (secureConnectionStart - connectStart)
-              tls_time_ms:
-                type: number
-                description: TLS handshake time in ms (connectEnd - secureConnectionStart)
-              request_time_ms:
-                type: number
-                description: Request time in ms (responseStart - requestStart)
-              response_time_ms:
-                type: number
-                description: Response time in ms (responseEnd - responseStart)
-              ttfb_time_ms:
-                type: number
-                description: Time to first byte in ms (responseStart - startTime)
-              duration_ms:
-                type: number
-                description: Duration of the request in ms (duration)
-              status_code:
-                type: number
-                description: Status of the request (responseStatus)
-              transfer_bytes:
-                type: number
-                description: Transfer data size in bytes (encodedBodySize)
-              actual_bytes:
-                type: number
-                description: Actual data size in bytes (decodedBodySize)
-              pulse_identifier:
-                type: string
-                description: Alphanumeric string used to uniquely identify each pulse
-              pulse_number:
-                type: number
-                description: Pulse number
-
-examples:
-  - { "recipe_name": "Latency Test", "recipe_type": "http_get", "ctx": { "server": "test", "ts": "1682742173938" }, "reports": [ { "target_name": "eqiad", "target_url": "https://measure-eqiad.wikimedia.org/measure", "pulses": [ { "redirect_time_ms": 0, "dns_time_ms": 14, "tcp_time_ms": 326, "tls_time_ms": 362, "request_time_ms": 399, "response_time_ms": 1, "ttfb_ms": 1102, "duration_ms": 1102, "status_code": 200, "transfer_bytes": 0, "actual_bytes": 0, "pulse_identifier": "5ma1j0p36irtiqaa6m3a5am3", "pulse_number": 0 }, { "redirect_time_ms": 0, "dns_time_ms": 0, "tcp_time_ms": 0, "tls_time_ms": 0, "request_time_ms": 339, "response_time_ms": 1, "ttfb_ms": 341, "duration_ms": 341, "status_code": 200, "transfer_bytes": 0, "actual_bytes": 0, "pulse_identifier": "bb4oat8n47h3w9ww013vrefp", "pulse_number": 1 } ] }, { "target_name": "eqsin", "target_url": "https://measure-eqsin.wikimedia.org/measure", "pulses": [ { "redirect_time_ms": 0, "dns_time_ms": 17, "tcp_time_ms": 145, "tls_time_ms": 150, "request_time_ms": 164, "response_time_ms": 1, "ttfb_ms": 476, "duration_ms": 477, "status_code": 200, "transfer_bytes": 0, "actual_bytes": 0, "pulse_identifier": "igaisoi8vtiozrxjodyquwkh", "pulse_number": 0 }, { "redirect_time_ms": 0, "dns_time_ms": 0, "tcp_time_ms": 0, "tls_time_ms": 0, "request_time_ms": 150, "response_time_ms": 1, "ttfb_ms": 152, "duration_ms": 153, "status_code": 200, "transfer_bytes": 0, "actual_bytes": 0, "pulse_identifier": "vkmpozj04xlbhht3xl1m29r0", "pulse_number": 1 } ] } ], "$schema": "/development/network/probe/1.0.0", "dt": "2023-04-29T04:22:57.466Z", "meta": { "stream": "development.network.probe", "domain": "localhost", "id": "3e0bd919-d12f-47e1-916f-3841115beb90", "dt": "2023-04-29T04:22:58.552Z", "request_id": "857a7380-e645-11ed-8647-7df7a5373a09" }, "http": { "request_headers": { "user-agent": "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/112.0.0.0 Safari/537.36" }, "client_ip": "172.19.0.1" } }
diff --git a/jsonschema/development/network/probe/latest b/jsonschema/development/network/probe/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/network/probe/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/network/probe/latest.yaml b/jsonschema/development/network/probe/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/network/probe/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/webrequest/1.0.0 b/jsonschema/development/webrequest/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/webrequest/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/webrequest/1.0.0.yaml b/jsonschema/development/webrequest/1.0.0.yaml
deleted file mode 100644
index 16ec685..0000000
--- a/jsonschema/development/webrequest/1.0.0.yaml
+++ /dev/null
@@ -1,169 +0,0 @@
-title: development/webrequest
-description: A webrequest log
-$id: /webrequest/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-  - dt
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  accept:
-    description: Accept header of request
-    type: string
-  accept_language:
-    description: Accept-Language header of request
-    type: string
-  backend:
-    description: >
-      Server HTTP response header. If a cache miss, this may be the backend
-      server hostname that handled the request.
-    type:
-      - string
-      - 'null'
-  cache_status:
-    description: Cache status
-    type: string
-  content_type:
-    description: Content-Type header of response
-    type: string
-  dt:
-    description: Timestamp at cache in ISO 8601
-    type: string
-    format: date-time
-    maxLength: 128
-  haproxy_pid:
-    description: >
-      HAProxy process id. Together with sequence, it can be used to deduplicate
-      request counts per host
-    type: number
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  hostname:
-    description: Source node hostname
-    type: string
-  http_method:
-    description: HTTP method of request
-    type: string
-  http_status:
-    description: HTTP status of response
-    type: string
-  ip:
-    description: IP of packet at cache
-    type: string
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  range:
-    description: Range header of response
-    type: string
-  referer:
-    description: Referer header of request
-    type: string
-  response_size:
-    description: Response size
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  sequence:
-    description: Per host sequence number
-    type: integer
-    maximum: 18446744073709552000
-    minimum: 0
-  time_firstbyte:
-    description: Time to first byte
-    type: number
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  tls:
-    description: |
-      TLS information of request. Format: key1=val1;key2=val2 format
-    type: string
-  uri_host:
-    description: Host of request
-    type: string
-  uri_path:
-    description: Path of request
-    type: string
-  uri_query:
-    description: Query of request
-    type: string
-  user_agent:
-    description: User-Agent header of request
-    type: string
-  webrequest_source:
-    description: |
-      Which Varnish cluster handled the request.
-    type: string
-    enum:
-      - text
-      - upload
-  x_analytics:
-    description: |
-      X-Analytics header of response. Format: key1=val2;key2=val2
-    type: string
-  x_cache:
-    description: X-Cache header of response
-    type: string
-examples:
-  - $schema: /webrequest/1.0.0
-    accept: '*/*'
-    accept_language: 'en-ca,en-us;q=0.9,en;q=0.8'
-    backend: mwABCD.codfw.wmnet
-    cache_status: hit-front
-    content_type: text/javascript; charset=utf-8
-    dt: '2021-01-01T00:00:00.0Z'
-    hostname: cpABCD.eqiad.wmnet
-    http_method: GET
-    http_status: '200'
-    ip: 1.2.3.4
-    meta:
-      dt: '2021-01-01T00:00:00.0Z'
-      request_id: dolor
-      stream: webrequest.text
-    range: '-'
-    referer: 'https://en.wikipedia.org/wiki/Example'
-    response_size: 12345
-    sequence: 123
-    time_firstbyte: 0.0003
-    tls: >-
-      vers=TLSv1.3;keyx=UNKNOWN;auth=ECDSA;ciph=AES-256-GCM-SHA384;prot=h2;sess=new
-    uri_host: en.wikipedia.org
-    uri_path: /w/load.php
-    uri_query: /wiki/Example
-    user_agent: Mozilla/5.0
-    webrequest_source: text
-    x_analytics: ns=0;page_id=123
-    x_cache: 'cpABCD miss, cpEFGH hit/45'
diff --git a/jsonschema/development/webrequest/current.yaml b/jsonschema/development/webrequest/current.yaml
deleted file mode 100644
index b27bcf6..0000000
--- a/jsonschema/development/webrequest/current.yaml
+++ /dev/null
@@ -1,152 +0,0 @@
-title: development/webrequest
-description: A webrequest log
-$id: /webrequest/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-
-allOf:
-  - $ref: /fragment/common/2.0.0#
-
-properties:
-
-  hostname:
-    type: string
-    description: Source node hostname
-
-  sequence:
-    type: integer # needs to be an uint64
-    description: Per host sequence number
-    maximum: 18446744073709551615
-    minimum: 0
-  
-  haproxy_pid:
-    type: number
-    description: >
-      HAProxy process id. Together with sequence, it
-      can be used to deduplicate request counts per host
-
-  dt:
-    type: string
-    description: Timestamp at cache in ISO 8601
-
-  time_firstbyte:
-    type: number
-    description: Time to first byte
-
-  ip:
-    type: string
-    description: IP of packet at cache
-
-  cache_status:
-    type: string
-    description: Cache status
-
-  http_status:
-    type: string
-    description: HTTP status of response
-
-  response_size:
-    type: integer
-    description: Response size
-
-  http_method:
-    type: string
-    description: HTTP method of request
-
-  uri_host:
-    type: string
-    description: Host of request
-
-  uri_path:
-    type: string
-    description: Path of request
-
-  uri_query:
-    type: string
-    description: Query of request
-
-  content_type:
-    type: string
-    description: Content-Type header of response
-
-  referer:
-    type: string
-    description: Referer header of request
-
-  user_agent:
-    type: string
-    description: User-Agent header of request
-
-  accept_language:
-    type: string
-    description: Accept-Language header of request
-
-  x_analytics:
-    type: string
-    description: >
-      X-Analytics header of response.
-      Format: key1=val2;key2=val2
-
-  range:
-    type: string
-    description: Range header of response
-
-  x_cache:
-    type: string
-    description: X-Cache header of response
-
-  accept:
-    type: string
-    description: Accept header of request
-
-  backend:
-    type: ["string", "null"] # 301 status won't have a backend field.
-    description: >
-      Server HTTP response header. If a cache miss, this may be the
-      backend server hostname that handled the request.
-
-  tls:
-    type: string
-    description: >
-      TLS information of request.
-      Format: key1=val1;key2=val2 format
-
-  webrequest_source:
-    type: string
-    enum:
-      - text
-      - upload
-    description: >
-      Which Varnish cluster handled the request.
-
-examples:
-  - $schema: /webrequest/1.0.0
-    meta:
-      dt: '2021-01-01T00:00:00.0Z'
-      request_id: dolor  # TODO can we set this from HAProxy?
-      stream: webrequest.text # TODO
-      # TODO: should we set meta.domain, meta.id ? It would be nice if we could.
-
-    accept: '*/*'
-    accept_language: en-ca,en-us;q=0.9,en;q=0.8
-    backend: mwABCD.codfw.wmnet
-    cache_status: hit-front
-    content_type: text/javascript; charset=utf-8
-    dt: '2021-01-01T00:00:00.0Z'
-    hostname: cpABCD.eqiad.wmnet
-    http_method: GET
-    http_status: '200'
-    ip: 1.2.3.4
-    range: '-'
-    referer: https://en.wikipedia.org/wiki/Example
-    response_size: 12345
-    sequence: 123
-    time_firstbyte: 0.0003
-    tls: vers=TLSv1.3;keyx=UNKNOWN;auth=ECDSA;ciph=AES-256-GCM-SHA384;prot=h2;sess=new
-    uri_host: en.wikipedia.org
-    uri_path: /w/load.php
-    uri_query: /wiki/Example
-    user_agent: Mozilla/5.0
-    x_analytics: ns=0;page_id=123
-    x_cache: cpABCD miss, cpEFGH hit/45
-    webrequest_source: text
diff --git a/jsonschema/development/webrequest/latest b/jsonschema/development/webrequest/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/webrequest/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/development/webrequest/latest.yaml b/jsonschema/development/webrequest/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/development/webrequest/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/error/0.0.3 b/jsonschema/error/0.0.3
deleted file mode 120000
index 0875e0b..0000000
--- a/jsonschema/error/0.0.3
+++ /dev/null
@@ -1 +0,0 @@
-0.0.3.yaml
\ No newline at end of file
diff --git a/jsonschema/error/0.0.3.yaml b/jsonschema/error/0.0.3.yaml
deleted file mode 100644
index 02ab8ba..0000000
--- a/jsonschema/error/0.0.3.yaml
+++ /dev/null
@@ -1,72 +0,0 @@
-title: error
-description: Represents an error event
-$id: /error/0.0.3
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - emitter_id
-  - message
-  - meta
-  - raw_event
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      uri:
-        type: string
-        format: uri-reference
-        maxLength: 8192
-        description: Unique URI identifying the event or entity
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      id:
-        description: Unique ID of this event
-        type: string
-      dt:
-        type: string
-        format: date-time
-        maxLength: 128
-        description: 'UTC event datetime, in ISO-8601 format'
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-  emitter_id:
-    description: identifies the entity where a fatal failure occured
-    type: string
-  raw_event:
-    description: string encoded original event
-    type: string
-  message:
-    description: message describing an error
-    type: string
-  stack:
-    description: stack trace of the error (optional)
-    type: string
-  triggered_by:
-    description: >
-      comma-separated list of event descriptions in `<topic>:<uri>` format, that
-      represent a chain of events that caused this event to be emitted.
-    type: string
-examples:
-  - $schema: /error/0.0.3
-    meta:
-      stream: error.example
-      dt: '2020-07-01T00:00:00Z'
-    emitter_id: example_emitter_id
-    raw_event: '{"example_raw_event": "example_value"}'
-    message: example_message
diff --git a/jsonschema/error/1.0.0 b/jsonschema/error/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/error/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/error/1.0.0.yaml b/jsonschema/error/1.0.0.yaml
deleted file mode 100644
index 916e776..0000000
--- a/jsonschema/error/1.0.0.yaml
+++ /dev/null
@@ -1,88 +0,0 @@
-title: error
-description: Represents an error event
-$id: /error/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - emitter_id
-  - message
-  - meta
-  - raw_event
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  emitter_id:
-    description: identifies the entity where a fatal failure occured
-    type: string
-  errored_schema_uri:
-    description: >
-      $schema URI of event that caused the error. This is the value of
-      raw_event's $schema if it is extractable when the error was encountered.
-    type: string
-  errored_stream_name:
-    description: >
-      meta.stream name of the event that caused the error. This is the value of
-      raw_event's meta.stream if it is extractable when the error was
-      encountered.
-    type: string
-  message:
-    description: message describing an error
-    type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  raw_event:
-    description: string encoded original event
-    type: string
-  stack:
-    description: stack trace of the error (optional)
-    type: string
-  triggered_by:
-    description: >
-      comma-separated list of event descriptions in `<topic>:<uri>` format, that
-      represent a chain of events that caused this event to be emitted.
-    type: string
-examples:
-  - $schema: /error/1.0.0
-    emitter_id: example_emitter_id
-    errored_schema_uri: /original/schema/1.0.0
-    errored_stream_name: original.stream.name
-    message: example error message
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: error.example
-    raw_event: >-
-      {"$schema": "/original/schema/1.0.0", "meta": {"stream":
-      "original.stream.name", "dt": "2020-07-01T00:00:00Z"}, "myproperty":
-      "invalid_value"}
diff --git a/jsonschema/error/2.0.0 b/jsonschema/error/2.0.0
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/error/2.0.0
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/error/2.0.0.yaml b/jsonschema/error/2.0.0.yaml
deleted file mode 100644
index 3e830fe..0000000
--- a/jsonschema/error/2.0.0.yaml
+++ /dev/null
@@ -1,97 +0,0 @@
-title: error
-description: Represents an error event
-$id: /error/2.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - dt
-  - emitter_id
-  - message
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  emitter_id:
-    description: identifies the entity where a fatal failure occured
-    type: string
-  errored_schema_uri:
-    description: >
-      $schema URI of event that caused the error. This is the value of
-      raw_event's $schema if it is extractable when the error was encountered.
-    type: string
-  errored_stream_name:
-    description: >
-      meta.stream name of the event that caused the error. This is the value of
-      raw_event's meta.stream if it is extractable when the error was
-      encountered.
-    type: string
-  message:
-    description: message describing an error
-    type: string
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  raw_event:
-    description: string encoded original event
-    type: string
-  stack:
-    description: stack trace of the error (optional)
-    type: string
-  triggered_by:
-    description: >
-      comma-separated list of event descriptions in `<topic>:<uri>` format, that
-      represent a chain of events that caused this event to be emitted.
-    type: string
-examples:
-  - $schema: /error/2.0.0
-    dt: '2020-07-01T00:00:00Z'
-    emitter_id: example_emitter_id
-    errored_schema_uri: /original/schema/1.0.0
-    errored_stream_name: original.stream.name
-    message: example error message
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: error.example
-    raw_event: >-
-      {"$schema": "/original/schema/1.0.0", "meta": {"stream":
-      "original.stream.name", "dt": "2020-07-01T00:00:00Z"}, "myproperty":
-      "invalid_value"}
diff --git a/jsonschema/error/2.1.0 b/jsonschema/error/2.1.0
deleted file mode 120000
index 4c2b50c..0000000
--- a/jsonschema/error/2.1.0
+++ /dev/null
@@ -1 +0,0 @@
-2.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/error/2.1.0.yaml b/jsonschema/error/2.1.0.yaml
deleted file mode 100644
index aa9698b..0000000
--- a/jsonschema/error/2.1.0.yaml
+++ /dev/null
@@ -1,101 +0,0 @@
-title: error
-description: Represents an error event
-$id: /error/2.1.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - dt
-  - emitter_id
-  - message
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  emitter_id:
-    description: identifies the entity where a fatal failure occured
-    type: string
-  error_type:
-    description: |
-      the type of the error, for example the class name of the exception.
-    type: string
-  errored_schema_uri:
-    description: >
-      $schema URI of event that caused the error. This is the value of
-      raw_event's $schema if it is extractable when the error was encountered.
-    type: string
-  errored_stream_name:
-    description: >
-      meta.stream name of the event that caused the error. This is the value of
-      raw_event's meta.stream if it is extractable when the error was
-      encountered.
-    type: string
-  message:
-    description: message describing an error
-    type: string
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  raw_event:
-    description: string encoded original event
-    type: string
-  stack:
-    description: stack trace of the error (optional)
-    type: string
-  triggered_by:
-    description: >
-      comma-separated list of event descriptions in `<topic>:<uri>` format, that
-      represent a chain of events that caused this event to be emitted.
-    type: string
-examples:
-  - $schema: /error/2.1.0
-    dt: '2020-07-01T00:00:00Z'
-    emitter_id: example_emitter_id
-    errored_schema_uri: /original/schema/1.0.0
-    errored_stream_name: original.stream.name
-    message: example error message
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: error.example
-    raw_event: >-
-      {"$schema": "/original/schema/1.0.0", "meta": {"stream":
-      "original.stream.name", "dt": "2020-07-01T00:00:00Z"}, "myproperty":
-      "invalid_value"}
diff --git a/jsonschema/error/CHANGELOG.md b/jsonschema/error/CHANGELOG.md
deleted file mode 100644
index 4910e65..0000000
--- a/jsonschema/error/CHANGELOG.md
+++ /dev/null
@@ -1,26 +0,0 @@
-# 2.1.0
-
-Add error_type.
-
-# 2.0.0
-Technically 'backwards imcompatible', but existent
-downstream systems should not care.
-We are adding a new field, and removing requiredness.
-
-- Use fragment/common/2.0.0 to get dt field.
-- raw_event should not be required
-
-# 1.0.0
-- Add errored_schema_uri and errored_stream_name
-
-# 0.0.3
-- switch to semver versioning 0.0.3 is after 2.yaml
-- switch to JSONSchema Draft 7
-- use $schema instead of meta.schema, meta.schema has been removed.
-- use meta.stream instead of meta.topic, meta.topic has been removed.
-- set $id to the relative schema URI
-- meta.uri is no longer required, as it wasn't always meaningful
-- meta.uri format is now uri-reference instead of uri to support relative URIs.
-
-# Version 2
-- Added `minLength: 1` for required string properties.
diff --git a/jsonschema/error/current.yaml b/jsonschema/error/current.yaml
deleted file mode 100644
index e949e05..0000000
--- a/jsonschema/error/current.yaml
+++ /dev/null
@@ -1,53 +0,0 @@
-title: error
-description: Represents an error event
-$id: /error/2.1.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/common/2.0.0#
-  - properties:
-      emitter_id:
-        type: string
-        description: identifies the entity where a fatal failure occured
-      raw_event:
-        type: string
-        description: string encoded original event
-      errored_schema_uri:
-        type: string
-        description: >
-          $schema URI of event that caused the error. This is the value of raw_event's
-          $schema if it is extractable when the error was encountered.
-      errored_stream_name:
-        type: string
-        description: >
-          meta.stream name of the event that caused the error. This is the value of raw_event's
-          meta.stream if it is extractable when the error was encountered.
-      message:
-        type: string
-        description: message describing an error
-      stack:
-        type: string
-        description: stack trace of the error (optional)
-      triggered_by:
-        type: string
-        description: >
-          comma-separated list of event descriptions in `<topic>:<uri>` format,
-          that represent a chain of events that caused this event to be emitted.
-      error_type:
-        type: string
-        description: >
-          the type of the error, for example the class name of the exception.
-required:
-  - emitter_id
-  - message
-examples:
-  - $schema: { $ref: '#/$id' }
-    dt: '2020-07-01T00:00:00Z'
-    meta:
-      stream: error.example
-      dt: '2020-07-01T00:00:00Z'
-    emitter_id: example_emitter_id
-    raw_event: '{"$schema": "/original/schema/1.0.0", "meta": {"stream": "original.stream.name", "dt": "2020-07-01T00:00:00Z"}, "myproperty": "invalid_value"}'
-    errored_schema_uri: /original/schema/1.0.0
-    errored_stream_name: original.stream.name
-    message: example error message
diff --git a/jsonschema/error/latest b/jsonschema/error/latest
deleted file mode 120000
index 4c2b50c..0000000
--- a/jsonschema/error/latest
+++ /dev/null
@@ -1 +0,0 @@
-2.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/error/latest.yaml b/jsonschema/error/latest.yaml
deleted file mode 120000
index 4c2b50c..0000000
--- a/jsonschema/error/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-2.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/README.md b/jsonschema/fragment/README.md
deleted file mode 100644
index da204e7..0000000
--- a/jsonschema/fragment/README.md
+++ /dev/null
@@ -1,48 +0,0 @@
-This directory contains schemas that are meant to be included in other
-final event schemas via JSON $ref pointers.
-
-This can be done in a couple of different ways.
-
-### $ref the full schema file
-This is most useful when used with jsonschema-tools allOf merging capabilities.
-Since even fragment schemas should have `title` and `$id` fields, you often
-want to keep your enclosing schema's top level fields, merging them over the
-included schemas fields.
-
-```lang=yaml
-title: my/event/schema
-description: A specific event schema
-$id: /my/event/schema/1.0.0
-$schema: http://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  # Include the common schema fields
-  - $ref: /fragment/common/1.0.0#
-  # Include the http field.  This will include and merge all of the
-  # http schema, including the http field.  This will end up
-   # adding an `http` field to /my/event/schema/1.0.0.
-  - $ref: /fragment/http/1.0.0#
-  # As well as all of the fields needed for /my/event/schema/1.0.0.
-  - properties:
-      my_event_schema_field:
-        type: string
-    # ...
-```
-
-### $ref a specific field inside a schema
-
-If you wanted to use the `http` schema's `http` field, but rename the
-field in my/event/schema differently, you could do the following:
-
-```lang=yaml
-# ...
-allOf:
-  - $ref: /fragment/common/1.0.0#
-  - properties:
-      my_event_schema_field:
-        type: string
-    # Include the http schema's http field under a new field name
-      http_info:
-        $ref: /fragment/http/1.0.0#/properties/http
-    # ...
-```
diff --git a/jsonschema/fragment/cirrussearch/index/1.0.0 b/jsonschema/fragment/cirrussearch/index/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/cirrussearch/index/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/cirrussearch/index/1.0.0.yaml b/jsonschema/fragment/cirrussearch/index/1.0.0.yaml
deleted file mode 100644
index 77cf06b..0000000
--- a/jsonschema/fragment/cirrussearch/index/1.0.0.yaml
+++ /dev/null
@@ -1,20 +0,0 @@
-title: fragment/cirrussearch/index
-description: Common schema fields to locate an elastic search index
-$id: /fragment/cirrussearch/index/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - cirrussearch_index_name
-  - cirrussearch_cluster_group
-properties:
-  cirrussearch_cluster_group:
-    description: The elastic search cluster group
-    type: string
-    minLength: 1
-  cirrussearch_index_name:
-    description: The elastic search index name
-    type: string
-    minLength: 1
-examples:
-  - cirrussearch_cluster_group: dolor
-    cirrussearch_index_name: dolor
diff --git a/jsonschema/fragment/cirrussearch/index/current.yaml b/jsonschema/fragment/cirrussearch/index/current.yaml
deleted file mode 100644
index 6efcd31..0000000
--- a/jsonschema/fragment/cirrussearch/index/current.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-title: fragment/cirrussearch/index
-description: Common schema fields to locate an elastic search index
-$id: /fragment/cirrussearch/index/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-
-required:
-  - cirrussearch_index_name
-  - cirrussearch_cluster_group
-
-properties:
-  cirrussearch_index_name:
-    description: The elastic search index name
-    type: string
-    minLength: 1
-  cirrussearch_cluster_group:
-    description: The elastic search cluster group
-    type: string
-    minLength: 1
diff --git a/jsonschema/fragment/cirrussearch/index/latest b/jsonschema/fragment/cirrussearch/index/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/cirrussearch/index/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/cirrussearch/index/latest.yaml b/jsonschema/fragment/cirrussearch/index/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/cirrussearch/index/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/common/1.0.0 b/jsonschema/fragment/common/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/common/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/common/1.0.0.yaml b/jsonschema/fragment/common/1.0.0.yaml
deleted file mode 100644
index 595289b..0000000
--- a/jsonschema/fragment/common/1.0.0.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-title: fragment/common
-description: Common schema fields for event schemas
-$id: /fragment/common/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-properties:
-  $schema:
-    type: string
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      uri:
-        type: string
-        format: uri-reference
-        maxLength: 8192
-        description: Unique URI identifying the event or entity
-      request_id:
-        type: string
-        description: Unique ID of the request that caused the event
-      id:
-        type: string
-        description: Unique ID of this event
-      dt:
-        type: string
-        format: date-time
-        maxLength: 128
-        description: 'UTC event datetime, in ISO-8601 format'
-      domain:
-        type: string
-        description: Domain the event or entity pertains to
-        minLength: 1
-      stream:
-        type: string
-        description: Name of the stream/queue/dataset that this event belongs in
-        minLength: 1
-required:
-  - $schema
-  - meta
diff --git a/jsonschema/fragment/common/1.1.0 b/jsonschema/fragment/common/1.1.0
deleted file mode 120000
index ac6cab8..0000000
--- a/jsonschema/fragment/common/1.1.0
+++ /dev/null
@@ -1 +0,0 @@
-1.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/common/1.1.0.yaml b/jsonschema/fragment/common/1.1.0.yaml
deleted file mode 100644
index d8a7012..0000000
--- a/jsonschema/fragment/common/1.1.0.yaml
+++ /dev/null
@@ -1,54 +0,0 @@
-title: fragment/common
-description: Common schema fields for event schemas
-$id: /fragment/common/1.1.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-examples:
-  - $schema: /fragment/common/1.1.0
-    meta:
-      domain: dolor
-      dt: '2021-01-01T00:00:00.0Z'
-      id: dolor
-      request_id: dolor
-      stream: dolor
-      uri: 'http://example.org'
diff --git a/jsonschema/fragment/common/2.0.0 b/jsonschema/fragment/common/2.0.0
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/fragment/common/2.0.0
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/common/2.0.0.yaml b/jsonschema/fragment/common/2.0.0.yaml
deleted file mode 100644
index d38cdba..0000000
--- a/jsonschema/fragment/common/2.0.0.yaml
+++ /dev/null
@@ -1,63 +0,0 @@
-title: fragment/common
-description: Common schema fields for event schemas
-$id: /fragment/common/2.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-  - dt
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-examples:
-  - $schema: /fragment/common/2.0.0
-    dt: '2021-01-01T00:00:00.0Z'
-    meta:
-      domain: dolor
-      dt: '2021-01-01T00:00:00.0Z'
-      id: dolor
-      request_id: dolor
-      stream: dolor
-      uri: 'http://example.org'
diff --git a/jsonschema/fragment/common/CHANGELOG.md b/jsonschema/fragment/common/CHANGELOG.md
deleted file mode 100644
index e87e6e0..0000000
--- a/jsonschema/fragment/common/CHANGELOG.md
+++ /dev/null
@@ -1,4 +0,0 @@
-### 2.0.0
-- meta.dt is no longer required
-- Added dt for event time
-  See: https://phabricator.wikimedia.org/T267648
diff --git a/jsonschema/fragment/common/current.yaml b/jsonschema/fragment/common/current.yaml
deleted file mode 100644
index eacb606..0000000
--- a/jsonschema/fragment/common/current.yaml
+++ /dev/null
@@ -1,58 +0,0 @@
-title: fragment/common
-description: Common schema fields for event schemas
-$id: /fragment/common/2.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-additionalProperties: false
-properties:
-
-  $schema:
-    type: string
-    description: >
-      A URI identifying the JSONSchema for this event. This should
-      match an schema's $id in a schema repository.
-      E.g. /schema/title/1.0.0
-
-  ### Meta data object.  All events schemas should have this.
-  meta:
-    type: object
-    properties:
-      uri:
-        type: string
-        format: uri-reference
-        maxLength: 8192
-        description: Unique URI identifying the event or entity
-      request_id:
-        type: string
-        description: Unique ID of the request that caused the event
-      id:
-        type: string
-        description: Unique ID of this event
-      dt:
-        type: string
-        format: date-time
-        maxLength: 128
-        description: Time the event was received by the system, in UTC ISO-8601 format
-      domain:
-        type: string
-        description: Domain the event or entity pertains to
-        minLength: 1
-      stream:
-        type: string
-        description: Name of the stream (dataset) that this event belongs in
-        minLength: 1
-    required:
-      - stream
-  dt:
-    type: string
-    format: date-time
-    maxLength: 128
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated
-      in UTC), AKA 'event time'. This is different than meta.dt, which
-      is used as the time the system received this event.
-
-required:
-  - $schema
-  - meta
-  - dt
diff --git a/jsonschema/fragment/common/latest b/jsonschema/fragment/common/latest
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/fragment/common/latest
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/common/latest.yaml b/jsonschema/fragment/common/latest.yaml
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/fragment/common/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/http/1.0.0 b/jsonschema/fragment/http/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/http/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/http/1.0.0.yaml b/jsonschema/fragment/http/1.0.0.yaml
deleted file mode 100644
index 6d4432a..0000000
--- a/jsonschema/fragment/http/1.0.0.yaml
+++ /dev/null
@@ -1,33 +0,0 @@
-title: fragment/http
-description: Information about an HTTP request.
-$id: /fragment/http/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-properties:
-  http:
-    type: object
-    properties:
-      method:
-        type: string
-        description: 'The HTTP request method (GET, POST, etc.)'
-      status_code:
-        type: integer
-        description: The HTTP status code returned for this request (when known)
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      client_ip:
-        type: string
-        description: The http client's IP address
-      has_cookies:
-        type: boolean
-        description: True if the http request has any cookies set
-      request_headers:
-        type: object
-        description: 'Request headers sent by the client.  E.g. user-agent, etc.'
-        additionalProperties:
-          type: string
-      response_headers:
-        type: object
-        description: Response headers sent back to the client (when known).
-        additionalProperties:
-          type: string
diff --git a/jsonschema/fragment/http/1.1.0 b/jsonschema/fragment/http/1.1.0
deleted file mode 120000
index ac6cab8..0000000
--- a/jsonschema/fragment/http/1.1.0
+++ /dev/null
@@ -1 +0,0 @@
-1.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/http/1.1.0.yaml b/jsonschema/fragment/http/1.1.0.yaml
deleted file mode 100644
index 63833cc..0000000
--- a/jsonschema/fragment/http/1.1.0.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
-title: fragment/http
-description: Information about an HTTP request.
-$id: /fragment/http/1.1.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-properties:
-  http:
-    type: object
-    properties:
-      protocol:
-        type: string
-        description: The protocol used for the request (HTTP or HTTPS)
-      method:
-        type: string
-        description: 'The HTTP request method (GET, POST, etc.)'
-      status_code:
-        type: integer
-        description: The HTTP status code returned for this request (when known)
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      client_ip:
-        type: string
-        description: The http client's IP address
-      has_cookies:
-        type: boolean
-        description: True if the http request has any cookies set
-      request_headers:
-        type: object
-        description: 'Request headers sent by the client.  E.g. user-agent, etc.'
-        additionalProperties:
-          type: string
-      response_headers:
-        type: object
-        description: Response headers sent back to the client (when known).
-        additionalProperties:
-          type: string
diff --git a/jsonschema/fragment/http/1.2.0 b/jsonschema/fragment/http/1.2.0
deleted file mode 120000
index c4a594d..0000000
--- a/jsonschema/fragment/http/1.2.0
+++ /dev/null
@@ -1 +0,0 @@
-1.2.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/http/1.2.0.yaml b/jsonschema/fragment/http/1.2.0.yaml
deleted file mode 100644
index 9c89823..0000000
--- a/jsonschema/fragment/http/1.2.0.yaml
+++ /dev/null
@@ -1,43 +0,0 @@
-title: fragment/http
-description: Information about an HTTP request.
-$id: /fragment/http/1.2.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-properties:
-  http:
-    type: object
-    properties:
-      has_cookies:
-        description: True if the http request has any cookies set
-        type: boolean
-      method:
-        description: 'The HTTP request method (GET, POST, etc.)'
-        type: string
-      protocol:
-        description: The protocol used for the request (HTTP or HTTPS)
-        type: string
-      request_headers:
-        description: 'Request headers sent by the client.  E.g. user-agent, etc.'
-        type: object
-        additionalProperties:
-          type: string
-      response_headers:
-        description: Response headers sent back to the client (when known).
-        type: object
-        additionalProperties:
-          type: string
-      status_code:
-        description: The HTTP status code returned for this request (when known)
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-examples:
-  - http:
-      has_cookies: false
-      method: dolor
-      protocol: dolor
-      request_headers:
-        dolorb: dolor
-      response_headers:
-        dolorb: dolor
-      status_code: -6305039478318694
diff --git a/jsonschema/fragment/http/CHANGELOG.md b/jsonschema/fragment/http/CHANGELOG.md
deleted file mode 100644
index 9ae014f..0000000
--- a/jsonschema/fragment/http/CHANGELOG.md
+++ /dev/null
@@ -1,14 +0,0 @@
-### Version 1.2.0
-- Remove `client_ip` property from the schema.
-  eventgate-wikimedia will set this to the value of the X-Client-IP header
-  if this property exists in the schema. We don't want to always do this by
-  default, so we remove it from this `http` schema field fragment.
-  `http.client_ip can be manually added a schema if this behavior is desired.
-  This is technically backwards incompatible change, but we can manage this
-  by manually including it in concrete schemas that already exist.  At least
-  no new schemas that $ref this http schema fragment will automatically include it
-  A new fragment/http/client_ip schema has been added.  This can be $ref-ed
-  in a concrete schema directly to continue using http.client_ip.
-
-### Version 1.1.0
-- Added `protocol` property to the schema
diff --git a/jsonschema/fragment/http/client_ip/1.0.0 b/jsonschema/fragment/http/client_ip/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/http/client_ip/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/http/client_ip/1.0.0.yaml b/jsonschema/fragment/http/client_ip/1.0.0.yaml
deleted file mode 100644
index f6b103f..0000000
--- a/jsonschema/fragment/http/client_ip/1.0.0.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-title: fragment/http/client_ip
-description: "An http.client_ip property that can be\_optionatlly added to the http object."
-$id: /fragment/http/client_ip/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-properties:
-  http:
-    type: object
-    properties:
-      client_ip:
-        description: >-
-          The http client's IP address, usually set from the X-Client-IP header,
-          the value of which is extracted from X-Forwarded-For.
-        type: string
-examples:
-  - http:
-      client_ip: dolor
diff --git a/jsonschema/fragment/http/client_ip/current.yaml b/jsonschema/fragment/http/client_ip/current.yaml
deleted file mode 100644
index 406dc35..0000000
--- a/jsonschema/fragment/http/client_ip/current.yaml
+++ /dev/null
@@ -1,14 +0,0 @@
-title: fragment/http/client_ip
-description: An http.client_ip property that can be optionatlly added to the http object.
-$id: /fragment/http/client_ip/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-properties:
-  http:
-    type: object
-    properties:
-      client_ip:
-        type: string
-        description: >-
-          The http client's IP address, usually set from the X-Client-IP header,
-          the value of which is extracted from X-Forwarded-For.
\ No newline at end of file
diff --git a/jsonschema/fragment/http/client_ip/latest b/jsonschema/fragment/http/client_ip/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/http/client_ip/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/http/client_ip/latest.yaml b/jsonschema/fragment/http/client_ip/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/http/client_ip/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/http/current.yaml b/jsonschema/fragment/http/current.yaml
deleted file mode 100644
index 6c570fc..0000000
--- a/jsonschema/fragment/http/current.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-title: fragment/http
-description: Information about an HTTP request.
-$id: /fragment/http/1.2.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-properties:
-  http:
-    type: object
-    properties:
-      protocol:
-        type: string
-        description: The protocol used for the request (HTTP or HTTPS)
-      method:
-        type: string
-        description: The HTTP request method (GET, POST, etc.)
-      status_code:
-        type: integer
-        description: The HTTP status code returned for this request (when known)
-      has_cookies:
-        type: boolean
-        description: True if the http request has any cookies set
-      request_headers:
-        type: object
-        description: Request headers sent by the client.  E.g. user-agent, etc.
-        additionalProperties:
-          type: string
-      response_headers:
-        type: object
-        description: Response headers sent back to the client (when known).
-        additionalProperties:
-          type: string
diff --git a/jsonschema/fragment/http/latest b/jsonschema/fragment/http/latest
deleted file mode 120000
index c4a594d..0000000
--- a/jsonschema/fragment/http/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.2.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/http/latest.yaml b/jsonschema/fragment/http/latest.yaml
deleted file mode 120000
index c4a594d..0000000
--- a/jsonschema/fragment/http/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.2.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/common/1.0.0 b/jsonschema/fragment/mediawiki/common/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/common/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/common/1.0.0.yaml b/jsonschema/fragment/mediawiki/common/1.0.0.yaml
deleted file mode 100644
index 71f8138..0000000
--- a/jsonschema/fragment/mediawiki/common/1.0.0.yaml
+++ /dev/null
@@ -1,94 +0,0 @@
-title: fragment/mediawiki/common
-description: Common schema fields for all Mediawiki entities
-$id: /fragment/mediawiki/common/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-properties:
-  $schema:
-    type: string
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      uri:
-        type: string
-        format: uri-reference
-        maxLength: 8192
-        description: Unique URI identifying the event or entity
-      request_id:
-        type: string
-        description: Unique ID of the request that caused the event
-      id:
-        type: string
-        description: Unique ID of this event
-      dt:
-        type: string
-        format: date-time
-        maxLength: 128
-        description: 'UTC event datetime, in ISO-8601 format'
-      domain:
-        type: string
-        description: Domain the event or entity pertains to
-        minLength: 1
-      stream:
-        type: string
-        description: Name of the stream/queue/dataset that this event belongs in
-        minLength: 1
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
diff --git a/jsonschema/fragment/mediawiki/common/2.0.0 b/jsonschema/fragment/mediawiki/common/2.0.0
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/fragment/mediawiki/common/2.0.0
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/common/2.0.0.yaml b/jsonschema/fragment/mediawiki/common/2.0.0.yaml
deleted file mode 100644
index 2fedd2f..0000000
--- a/jsonschema/fragment/mediawiki/common/2.0.0.yaml
+++ /dev/null
@@ -1,108 +0,0 @@
-title: fragment/mediawiki/common
-description: Common schema fields for all Mediawiki entities
-$id: /fragment/mediawiki/common/2.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-examples:
-  - $schema: /fragment/mediawiki/common/2.0.0
-    database: dolor
-    meta:
-      domain: dolor
-      dt: '2021-01-01T00:00:00.0Z'
-      id: dolor
-      request_id: dolor
-      stream: dolor
-      uri: 'http://example.org'
-    performer:
-      user_edit_count: 1351079888211148
-      user_groups:
-        - dolor
-      user_id: -6305039478318694
-      user_is_bot: false
-      user_registration_dt: '2021-01-01T00:00:00.0Z'
-      user_text: dolor
diff --git a/jsonschema/fragment/mediawiki/common/3.0.0 b/jsonschema/fragment/mediawiki/common/3.0.0
deleted file mode 120000
index 2ccb6c9..0000000
--- a/jsonschema/fragment/mediawiki/common/3.0.0
+++ /dev/null
@@ -1 +0,0 @@
-3.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/common/3.0.0.yaml b/jsonschema/fragment/mediawiki/common/3.0.0.yaml
deleted file mode 100644
index 23d7884..0000000
--- a/jsonschema/fragment/mediawiki/common/3.0.0.yaml
+++ /dev/null
@@ -1,117 +0,0 @@
-title: fragment/mediawiki/common
-description: Common schema fields for all Mediawiki entities
-$id: /fragment/mediawiki/common/3.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-  - dt
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-examples:
-  - $schema: /fragment/mediawiki/common/3.0.0
-    database: dolor
-    dt: '2021-01-01T00:00:00.0Z'
-    meta:
-      domain: dolor
-      dt: '2021-01-01T00:00:00.0Z'
-      id: dolor
-      request_id: dolor
-      stream: dolor
-      uri: 'http://example.org'
-    performer:
-      user_edit_count: 1351079888211148
-      user_groups:
-        - dolor
-      user_id: -6305039478318694
-      user_is_bot: false
-      user_registration_dt: '2021-01-01T00:00:00.0Z'
-      user_text: dolor
diff --git a/jsonschema/fragment/mediawiki/common/changelog.md b/jsonschema/fragment/mediawiki/common/changelog.md
deleted file mode 100644
index a381b30..0000000
--- a/jsonschema/fragment/mediawiki/common/changelog.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# 3.0.0
-- Use /fragment/common/2.0.0
-# 2.0.0
-- Removed requiredness of `database` field
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/common/current.yaml b/jsonschema/fragment/mediawiki/common/current.yaml
deleted file mode 100644
index 4e3609c..0000000
--- a/jsonschema/fragment/mediawiki/common/current.yaml
+++ /dev/null
@@ -1,55 +0,0 @@
-title: fragment/mediawiki/common
-description: Common schema fields for all Mediawiki entities
-$id: /fragment/mediawiki/common/3.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-# Use allOf so that common schemas are fully merged by
-# jsonschema-tools along with their required fields.
-allOf:
-    ### global event fields
-  - $ref: /fragment/common/2.0.0#
-### Mediawiki entity fields.
-properties:
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    properties:
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and
-          will not be present for anonymous users.
-        type: integer
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-      user_groups:
-        description: A list of the groups this user belongs to.  E.g. bot, sysop etc.
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration.
-          Not present for anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event.
-          Not present for anonymous users.
-        type: integer
-        minimum: 0
diff --git a/jsonschema/fragment/mediawiki/common/latest b/jsonschema/fragment/mediawiki/common/latest
deleted file mode 120000
index 2ccb6c9..0000000
--- a/jsonschema/fragment/mediawiki/common/latest
+++ /dev/null
@@ -1 +0,0 @@
-3.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/common/latest.yaml b/jsonschema/fragment/mediawiki/common/latest.yaml
deleted file mode 120000
index 2ccb6c9..0000000
--- a/jsonschema/fragment/mediawiki/common/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-3.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/page/common/1.0.0 b/jsonschema/fragment/mediawiki/page/common/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/page/common/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/page/common/1.0.0.yaml b/jsonschema/fragment/mediawiki/page/common/1.0.0.yaml
deleted file mode 100644
index 3f3b836..0000000
--- a/jsonschema/fragment/mediawiki/page/common/1.0.0.yaml
+++ /dev/null
@@ -1,125 +0,0 @@
-title: fragment/mediawiki/page/common
-description: Common schema fields for all Mediawiki page entities
-$id: /fragment/mediawiki/page/common/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-properties:
-  $schema:
-    type: string
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      uri:
-        type: string
-        format: uri-reference
-        maxLength: 8192
-        description: Unique URI identifying the event or entity
-      request_id:
-        type: string
-        description: Unique ID of the request that caused the event
-      id:
-        type: string
-        description: Unique ID of this event
-      dt:
-        type: string
-        format: date-time
-        maxLength: 128
-        description: 'UTC event datetime, in ISO-8601 format'
-      domain:
-        type: string
-        description: Domain the event or entity pertains to
-        minLength: 1
-      stream:
-        type: string
-        description: Name of the stream/queue/dataset that this event belongs in
-        minLength: 1
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-  page_id:
-    description: The (database) page ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-  page_namespace:
-    description: The namespace ID this page belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_is_redirect:
-    description: >
-      True if this page is currently a redirect page.  This fact is ultimately
-      represented by revision content containing redirect wikitext.  If rev_id's
-      content has redirect wikitext, then this page is a redirect.  Note that
-      this state is also stored on the Mediawiki page table.
-    type: boolean
-  rev_id:
-    description: The head revision of the page at the time of this event.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/page/common/2.0.0 b/jsonschema/fragment/mediawiki/page/common/2.0.0
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/fragment/mediawiki/page/common/2.0.0
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/page/common/2.0.0.yaml b/jsonschema/fragment/mediawiki/page/common/2.0.0.yaml
deleted file mode 100644
index 0e8bfc1..0000000
--- a/jsonschema/fragment/mediawiki/page/common/2.0.0.yaml
+++ /dev/null
@@ -1,139 +0,0 @@
-title: fragment/mediawiki/page/common
-description: Common schema fields for all Mediawiki page entities
-$id: /fragment/mediawiki/page/common/2.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The (database) page ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_is_redirect:
-    description: >
-      True if this page is currently a redirect page.  This fact is ultimately
-      represented by revision content containing redirect wikitext.  If rev_id's
-      content has redirect wikitext, then this page is a redirect.  Note that
-      this state is also stored on the Mediawiki page table.
-    type: boolean
-  page_namespace:
-    description: The namespace ID this page belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  rev_id:
-    description: The head revision of the page at the time of this event.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-examples:
-  - $schema: /fragment/mediawiki/page/common/2.0.0
-    database: dolor
-    meta:
-      domain: dolor
-      dt: '2021-01-01T00:00:00.0Z'
-      id: dolor
-      request_id: dolor
-      stream: dolor
-      uri: 'http://example.org'
-    page_id: 1351079888211148
-    page_is_redirect: false
-    page_namespace: -6305039478318694
-    page_title: dolor
-    performer:
-      user_edit_count: 1351079888211148
-      user_groups:
-        - dolor
-      user_id: -6305039478318694
-      user_is_bot: false
-      user_registration_dt: '2021-01-01T00:00:00.0Z'
-      user_text: dolor
-    rev_id: 1351079888211148
diff --git a/jsonschema/fragment/mediawiki/page/common/changelog.md b/jsonschema/fragment/mediawiki/page/common/changelog.md
deleted file mode 100644
index d2cf00c..0000000
--- a/jsonschema/fragment/mediawiki/page/common/changelog.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# 2.0.0
-- Removed requiredness of `page_id`, `page_is_redirect`, `page_namespace`, `page_title` and `rev_id`
diff --git a/jsonschema/fragment/mediawiki/page/common/current.yaml b/jsonschema/fragment/mediawiki/page/common/current.yaml
deleted file mode 100644
index 76b8755..0000000
--- a/jsonschema/fragment/mediawiki/page/common/current.yaml
+++ /dev/null
@@ -1,41 +0,0 @@
-title: fragment/mediawiki/page/common
-description: Common schema fields for all Mediawiki page entities
-$id: /fragment/mediawiki/page/common/2.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-
-allOf:
-    ### Mediawiki entity fields.
-  - $ref: /fragment/mediawiki/common/2.0.0#
-### page e[ntity fields
-properties:
-
-  page_id:
-    description: The (database) page ID.
-    type: integer
-    # Some events are emitted async from the JobQueue and if the page was
-    # deleted before the hook was executed, the returned page_id is 0
-    minimum: 0
-
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-
-  page_namespace:
-    description: The namespace ID this page belongs to.
-    type: integer
-
-  page_is_redirect:
-    description: >
-      True if this page is currently a redirect page.  This
-      fact is ultimately represented by revision content containing
-      redirect wikitext.  If rev_id's content has redirect wikitext,
-      then this page is a redirect.  Note that this state is also
-      stored on the Mediawiki page table.
-    type: boolean
-
-  rev_id:
-    description: The head revision of the page at the time of this event.
-    type: integer
-    minimum: 0
diff --git a/jsonschema/fragment/mediawiki/page/common/latest b/jsonschema/fragment/mediawiki/page/common/latest
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/fragment/mediawiki/page/common/latest
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/page/common/latest.yaml b/jsonschema/fragment/mediawiki/page/common/latest.yaml
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/fragment/mediawiki/page/common/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/revision/common/1.0.0 b/jsonschema/fragment/mediawiki/revision/common/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/revision/common/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/revision/common/1.0.0.yaml b/jsonschema/fragment/mediawiki/revision/common/1.0.0.yaml
deleted file mode 100644
index ba689e2..0000000
--- a/jsonschema/fragment/mediawiki/revision/common/1.0.0.yaml
+++ /dev/null
@@ -1,137 +0,0 @@
-title: fragment/mediawiki/revision/common
-description: Common schema fields for all Mediawiki revision entities
-$id: /fragment/mediawiki/revision/common/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-  - rev_timestamp
-properties:
-  $schema:
-    type: string
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      uri:
-        type: string
-        format: uri-reference
-        maxLength: 8192
-        description: Unique URI identifying the event or entity
-      request_id:
-        type: string
-        description: Unique ID of the request that caused the event
-      id:
-        type: string
-        description: Unique ID of this event
-      dt:
-        type: string
-        format: date-time
-        maxLength: 128
-        description: 'UTC event datetime, in ISO-8601 format'
-      domain:
-        type: string
-        description: Domain the event or entity pertains to
-        minLength: 1
-      stream:
-        type: string
-        description: Name of the stream/queue/dataset that this event belongs in
-        minLength: 1
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-  page_id:
-    description: The page ID of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  page_title:
-    description: The normalized title of the page this revision belongs to.
-    type: string
-    minLength: 1
-  page_namespace:
-    description: The namespace of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This fact is ultimately represented
-      by revision content containing redirect wikitext.  If this revision is the
-      head revision of the page, then the page will also be a redirect.
-    type: boolean
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_parent_id:
-    description: The parent revison ID of the revision that this event represents.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_timestamp:
-    description: >
-      The revision's creation time in ISO8601 format.  This field does not end
-      in '_dt' to better match the field name on the Mediawiki revision table.
-    type: string
-    format: date-time
-    maxLength: 128
diff --git a/jsonschema/fragment/mediawiki/revision/common/2.0.0 b/jsonschema/fragment/mediawiki/revision/common/2.0.0
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/fragment/mediawiki/revision/common/2.0.0
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/revision/common/2.0.0.yaml b/jsonschema/fragment/mediawiki/revision/common/2.0.0.yaml
deleted file mode 100644
index 6838980..0000000
--- a/jsonschema/fragment/mediawiki/revision/common/2.0.0.yaml
+++ /dev/null
@@ -1,152 +0,0 @@
-title: fragment/mediawiki/revision/common
-description: Common schema fields for all Mediawiki revision entities
-$id: /fragment/mediawiki/revision/common/2.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The page ID of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This fact is ultimately represented
-      by revision content containing redirect wikitext.  If this revision is the
-      head revision of the page, then the page will also be a redirect.
-    type: boolean
-  page_namespace:
-    description: The namespace of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page this revision belongs to.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_parent_id:
-    description: The parent revison ID of the revision that this event represents.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_timestamp:
-    description: >
-      The revision's creation time in ISO8601 format.  This field does not end
-      in '_dt' to better match the field name on the Mediawiki revision table.
-    type: string
-    format: date-time
-    maxLength: 128
-examples:
-  - $schema: /fragment/mediawiki/revision/common/2.0.0
-    database: dolor
-    meta:
-      domain: dolor
-      dt: '2021-01-01T00:00:00.0Z'
-      id: dolor
-      request_id: dolor
-      stream: dolor
-      uri: 'http://example.org'
-    page_id: 1351079888211149
-    page_is_redirect: false
-    page_namespace: -6305039478318694
-    page_title: dolor
-    performer:
-      user_edit_count: 1351079888211148
-      user_groups:
-        - dolor
-      user_id: -6305039478318694
-      user_is_bot: false
-      user_registration_dt: '2021-01-01T00:00:00.0Z'
-      user_text: dolor
-    rev_id: 1351079888211148
-    rev_parent_id: 1351079888211148
-    rev_timestamp: '2021-01-01T00:00:00.0Z'
diff --git a/jsonschema/fragment/mediawiki/revision/common/3.0.0 b/jsonschema/fragment/mediawiki/revision/common/3.0.0
deleted file mode 120000
index 2ccb6c9..0000000
--- a/jsonschema/fragment/mediawiki/revision/common/3.0.0
+++ /dev/null
@@ -1 +0,0 @@
-3.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/revision/common/3.0.0.yaml b/jsonschema/fragment/mediawiki/revision/common/3.0.0.yaml
deleted file mode 100644
index 8b5e1dc..0000000
--- a/jsonschema/fragment/mediawiki/revision/common/3.0.0.yaml
+++ /dev/null
@@ -1,161 +0,0 @@
-title: fragment/mediawiki/revision/common
-description: Common schema fields for all Mediawiki revision entities
-$id: /fragment/mediawiki/revision/common/3.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-  - dt
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The page ID of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This fact is ultimately represented
-      by revision content containing redirect wikitext.  If this revision is the
-      head revision of the page, then the page will also be a redirect.
-    type: boolean
-  page_namespace:
-    description: The namespace of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page this revision belongs to.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_parent_id:
-    description: The parent revison ID of the revision that this event represents.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_timestamp:
-    description: >
-      The revision's creation time in ISO8601 format.  This field does not end
-      in '_dt' to better match the field name on the Mediawiki revision table.
-    type: string
-    format: date-time
-    maxLength: 128
-examples:
-  - $schema: /fragment/mediawiki/revision/common/3.0.0
-    database: dolor
-    dt: '2021-01-01T00:00:00.0Z'
-    meta:
-      domain: dolor
-      dt: '2021-01-01T00:00:00.0Z'
-      id: dolor
-      request_id: dolor
-      stream: dolor
-      uri: 'http://example.org'
-    page_id: 1351079888211149
-    page_is_redirect: false
-    page_namespace: -6305039478318694
-    page_title: dolor
-    performer:
-      user_edit_count: 1351079888211148
-      user_groups:
-        - dolor
-      user_id: -6305039478318694
-      user_is_bot: false
-      user_registration_dt: '2021-01-01T00:00:00.0Z'
-      user_text: dolor
-    rev_id: 1351079888211148
-    rev_parent_id: 1351079888211148
-    rev_timestamp: '2021-01-01T00:00:00.0Z'
diff --git a/jsonschema/fragment/mediawiki/revision/common/changelog.md b/jsonschema/fragment/mediawiki/revision/common/changelog.md
deleted file mode 100644
index c6d1f91..0000000
--- a/jsonschema/fragment/mediawiki/revision/common/changelog.md
+++ /dev/null
@@ -1,4 +0,0 @@
-# 3.0.0
-- Use /fragment/mediawiki/common#3.0.0
-# 2.0.0
-- Removed requiredness of `page_id`, `page_is_redirect`, `page_namespace`, `page_title` and `rev_id`
diff --git a/jsonschema/fragment/mediawiki/revision/common/current.yaml b/jsonschema/fragment/mediawiki/revision/common/current.yaml
deleted file mode 100644
index 145ece4..0000000
--- a/jsonschema/fragment/mediawiki/revision/common/current.yaml
+++ /dev/null
@@ -1,50 +0,0 @@
-title: fragment/mediawiki/revision/common
-description: Common schema fields for all Mediawiki revision entities
-$id: /fragment/mediawiki/revision/common/3.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  ### mediawiki entity fields - all mediawiki related events should have these.
-  - $ref: /fragment/mediawiki/common/3.0.0#
-### revision entity fields - all revision related events should have these.
-properties:
-  page_id:
-    description: The page ID of the page this revision belongs to.
-    type: integer
-    minimum: 1
-
-  page_title:
-    description: The normalized title of the page this revision belongs to.
-    type: string
-    minLength: 1
-
-  page_namespace:
-    description: The namespace of the page this revision belongs to.
-    type: integer
-
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This
-      fact is ultimately represented by revision content containing
-      redirect wikitext.  If this revision is the head revision
-      of the page, then the page will also be a redirect.
-    type: boolean
-
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    minimum: 0
-
-  rev_parent_id:
-    description: The parent revison ID of the revision that this event represents.
-    type: integer
-    minimum: 0
-
-  rev_timestamp:
-    description: >
-      The revision's creation time in ISO8601 format.  This field
-      does not end in '_dt' to better match the field name on the
-      Mediawiki revision table.
-    type: string
-    format: date-time
-    maxLength: 128
diff --git a/jsonschema/fragment/mediawiki/revision/common/latest b/jsonschema/fragment/mediawiki/revision/common/latest
deleted file mode 120000
index 2ccb6c9..0000000
--- a/jsonschema/fragment/mediawiki/revision/common/latest
+++ /dev/null
@@ -1 +0,0 @@
-3.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/revision/common/latest.yaml b/jsonschema/fragment/mediawiki/revision/common/latest.yaml
deleted file mode 120000
index 2ccb6c9..0000000
--- a/jsonschema/fragment/mediawiki/revision/common/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-3.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/revision/slot/1.0.0 b/jsonschema/fragment/mediawiki/revision/slot/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/revision/slot/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/revision/slot/1.0.0.yaml b/jsonschema/fragment/mediawiki/revision/slot/1.0.0.yaml
deleted file mode 100644
index 25392e2..0000000
--- a/jsonschema/fragment/mediawiki/revision/slot/1.0.0.yaml
+++ /dev/null
@@ -1,32 +0,0 @@
-title: fragment/mediawiki/revision/slot
-description: Schema fields describing a revision slot
-$id: /fragment/mediawiki/revision/slot/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - rev_slot_content_model
-  - rev_slot_sha1
-  - rev_slot_size
-properties:
-  rev_slot_content_model:
-    description: 'Model of the content (e.g. wikitext, wikibase-mediainfo...)'
-    type: string
-  rev_slot_origin_rev_id:
-    description: Revision for which this slot was created
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_slot_sha1:
-    description: SHA1 of the slot content
-    type: string
-  rev_slot_size:
-    description: Size in bytes of the slot content
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-examples:
-  - rev_slot_content_model: dolor
-    rev_slot_origin_rev_id: 1351079888211148
-    rev_slot_sha1: dolor
-    rev_slot_size: 1351079888211148
diff --git a/jsonschema/fragment/mediawiki/revision/slot/current.yaml b/jsonschema/fragment/mediawiki/revision/slot/current.yaml
deleted file mode 100644
index af54e6e..0000000
--- a/jsonschema/fragment/mediawiki/revision/slot/current.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-title: fragment/mediawiki/revision/slot
-description: Schema fields describing a revision slot
-$id: /fragment/mediawiki/revision/slot/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-additionalProperties: false
-properties:
-  rev_slot_content_model:
-    description: Model of the content (e.g. wikitext, wikibase-mediainfo...)
-    type: string
-
-  rev_slot_origin_rev_id:
-    description: Revision for which this slot was created
-    type: integer
-    minimum: 0
-
-  rev_slot_sha1:
-    description: SHA1 of the slot content
-    type: string
-
-  rev_slot_size:
-    description: Size in bytes of the slot content
-    type: integer
-    minimum: 0
-
-required:
-  - rev_slot_content_model
-  - rev_slot_sha1
-  - rev_slot_size
diff --git a/jsonschema/fragment/mediawiki/revision/slot/latest b/jsonschema/fragment/mediawiki/revision/slot/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/revision/slot/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/revision/slot/latest.yaml b/jsonschema/fragment/mediawiki/revision/slot/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/revision/slot/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/README.md b/jsonschema/fragment/mediawiki/state/README.md
deleted file mode 100644
index a3b0ba9..0000000
--- a/jsonschema/fragment/mediawiki/state/README.md
+++ /dev/null
@@ -1,28 +0,0 @@
-As part of https://phabricator.wikimedia.org/T308017,
-MediaWiki state change events are being remodeled as entities.
-
-We have learned much since when we first modeled
-MediaWiki event data in ~2016.  Notably, we've learned that it
-is better to model state changes as 'change' events
-for specific entities in a changelog.  The intention
-is to represent all of an entitiy's state changes in the same
-stream, and to do that, we need a full representation
-of the current state of that entity in each event in that stream.
-
-We also need reusable fragments of actual state change
-schemas too, not just the entity models.
-
-- The state/entity directory contains data models that
-  represent an MediaWiki entity's state at a specific time.
-
-- The state/change directory has fragments that represent
-  a state change of an entity (or entities).  These mostly exist
-  so that they can also be used as reusable fragments,
-  e.g. mediawiki/page/change and
-  possibly mediawiki/page/change_with_rendered_content_body.
-
-The mediawiki/common/, mediawiki/revision/, and mediawiki/user/ directories here are
-still used by active event streams, but may one (distant)
-day be deprecated.  If you are creating a new MediaWiki
-state change stream, please consider modeling the events as changes to
-entities.
diff --git a/jsonschema/fragment/mediawiki/state/change/page/1.0.0 b/jsonschema/fragment/mediawiki/state/change/page/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/change/page/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/change/page/1.0.0.yaml b/jsonschema/fragment/mediawiki/state/change/page/1.0.0.yaml
deleted file mode 100644
index f7d307f..0000000
--- a/jsonschema/fragment/mediawiki/state/change/page/1.0.0.yaml
+++ /dev/null
@@ -1,636 +0,0 @@
-title: fragment/mediawiki/state/change/page
-description: >
-  Fragment that represents a MediaWiki page state change in a changelog. This
-  schema can be used in multiple 'enriched' versions of page state changes.
-  E.g., there could be a 'page_change_with_rendered_content' schema that adds
-  fields necessary for representing a change to rendered page content. Because
-  we want this to be reusable, this schema does not attempt to represent
-  revision content (or MCR content 'slots').  If content info is needed, you
-  should add those fields to concrete schema yourself. See the non-fragment
-  mediawiki/page/change schema for working example.
-$id: /fragment/mediawiki/state/change/page/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - changelog_kind
-  - page_change_kind
-  - wiki_id
-  - page
-  - performer
-  - revision
-properties:
-  changelog_kind:
-    description: >
-      The kind of this event in a changelog. This is used to map the event to an
-      action in a data store.
-    type: string
-    enum:
-      - insert
-      - update
-      - delete
-  comment:
-    description: >
-      The comment left by the user that performed this change. Same as
-      revision.comment on edits.
-    type: string
-  created_redirect_page:
-    title: fragment/mediawiki/state/entity/page
-    description: >
-      Page entity that was created at the old title during a page move. This is
-      only set for page move events. Note that the created_redirect_page will
-      also have its own associated page create event.
-    $id: /fragment/mediawiki/state/entity/page/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      revision_count:
-        description: >
-          The number of revisions of this page at the time of this event. During
-          a delete, this number of revisions will be archived. This field is
-          likely only set for page delete events, as getting this information on
-          all events is expensive.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-        revision_count: 1351079888211148
-  page:
-    title: fragment/mediawiki/state/entity/page
-    description: Fields for MediaWiki page entity.
-    $id: /fragment/mediawiki/state/entity/page/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      revision_count:
-        description: >
-          The number of revisions of this page at the time of this event. During
-          a delete, this number of revisions will be archived. This field is
-          likely only set for page delete events, as getting this information on
-          all events is expensive.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-        revision_count: 1351079888211148
-  page_change_kind:
-    description: |
-      The origin kind of the change to this page as viewed by MediaWiki.
-    type: string
-    enum:
-      - create
-      - undelete
-      - edit
-      - move
-      - delete
-      - visibility_change
-  performer:
-    title: fragment/mediawiki/state/entity/user
-    description: >
-      Represents the MediaWiki actor that made this change. If this change is an
-      edit, this will be the same as revision.editor.
-    $id: /fragment/mediawiki/state/entity/user/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    properties:
-      edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      groups:
-        description: >
-          A list of the groups this user belongs to.  E.g. bot, sysop etc. Not
-          present for anonymous users.
-        type: array
-        items:
-          type: string
-          minLength: 1
-      is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      is_system:
-        description: >
-          True if the user is a MediaWiki 'system' user. These are users that
-          cannot 'authenticate'.  These are usually listed in ReservedUsernames.
-        type: boolean
-      is_temp:
-        description: >
-          True if the user is an autocreated temporary MediaWiki user. This is
-          used for IP masking.
-        type: boolean
-      registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_id:
-        description: >
-          The user ID that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_text:
-        description: >
-          The user name or text representation of the user that performed this
-          change.
-        type: string
-        minLength: 1
-    examples:
-      - edit_count: 1351079888211148
-        groups:
-          - dolor
-        is_bot: false
-        is_system: false
-        is_temp: false
-        registration_dt: '2021-01-01T00:00:00.0Z'
-        user_id: 1351079888211148
-        user_text: dolor
-  prior_state:
-    description: >
-      Prior state of this page before this event. Fields are only present if
-      their values have changed.
-    type: object
-    properties:
-      page:
-        title: fragment/mediawiki/state/entity/page
-        description: Fields for MediaWiki page entity.
-        $id: /fragment/mediawiki/state/entity/page/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          is_redirect:
-            description: True if the page is a redirect page at the time of this event.
-            type: boolean
-          namespace_id:
-            description: The id of the namespace this page belongs to.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_id:
-            description: The (database) page ID of the page.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_title:
-            description: The normalized title of the page.
-            type: string
-            minLength: 1
-          revision_count:
-            description: >
-              The number of revisions of this page at the time of this event.
-              During a delete, this number of revisions will be archived. This
-              field is likely only set for page delete events, as getting this
-              information on all events is expensive.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - is_redirect: false
-            namespace_id: 1351079888211148
-            page_id: 1351079888211148
-            page_title: dolor
-            revision_count: 1351079888211148
-      revision:
-        title: fragment/mediawiki/state/entity/revision
-        description: Fields for MediaWiki revision entity.
-        $id: /fragment/mediawiki/state/entity/revision/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          comment:
-            description: The comment left by the editor when this revision was made.
-            type: string
-          editor:
-            title: fragment/mediawiki/state/entity/user
-            description: Represents the MediaWiki user that made this edit.
-            $id: /fragment/mediawiki/state/entity/user/1.0.0
-            $schema: 'https://json-schema.org/draft-07/schema#'
-            type: object
-            additionalProperties: false
-            properties:
-              edit_count:
-                description: >
-                  The number of edits this user has made at the time of this
-                  event. Not present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              groups:
-                description: >
-                  A list of the groups this user belongs to.  E.g. bot, sysop
-                  etc. Not present for anonymous users.
-                type: array
-                items:
-                  type: string
-                  minLength: 1
-              is_bot:
-                description: >
-                  True if this user is considered to be a bot at the time of
-                  this event. This is checked via the $user->isBot() method,
-                  which considers both user_groups and user permissions.
-                type: boolean
-              is_system:
-                description: >
-                  True if the user is a MediaWiki 'system' user. These are users
-                  that cannot 'authenticate'.  These are usually listed in
-                  ReservedUsernames.
-                type: boolean
-              is_temp:
-                description: >
-                  True if the user is an autocreated temporary MediaWiki user.
-                  This is used for IP masking.
-                type: boolean
-              registration_dt:
-                description: >
-                  The datetime of the user account registration. Not present for
-                  anonymous users or if missing in the MW database.
-                type: string
-                format: date-time
-                maxLength: 128
-              user_id:
-                description: >
-                  The user ID that performed this change.  This is optional, and
-                  will not be present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              user_text:
-                description: >
-                  The user name or text representation of the user that
-                  performed this change.
-                type: string
-                minLength: 1
-            examples:
-              - edit_count: 1351079888211148
-                groups:
-                  - dolor
-                is_bot: false
-                is_system: false
-                is_temp: false
-                registration_dt: '2021-01-01T00:00:00.0Z'
-                user_id: 1351079888211148
-                user_text: dolor
-          is_comment_visible:
-            description: >
-              Whether the comment of the revision is visible. See
-              RevisionRecord->DELETED_COMMENT.
-            type: boolean
-          is_content_visible:
-            description: >
-              Whether the revision's content body is visible. If this is false,
-              then content should be redacted. See RevisionRecord->DELETED_TEXT
-            type: boolean
-          is_editor_visible:
-            description: >
-              Whether the revision's editor information is visible. Affects
-              editor field. See RevisionRecord->DELETED_USER
-            type: boolean
-          is_minor_edit:
-            description: True if the editor marked this revision as a minor edit.
-            type: boolean
-          rev_dt:
-            description: >
-              Time this revision was created. This is rev_timestamp in the
-              MediaWiki database.
-            type: string
-            format: date-time
-            maxLength: 128
-          rev_id:
-            description: The (database) revision ID.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 1
-          rev_parent_id:
-            description: This revision's parent rev_id.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          rev_sha1:
-            description: |
-              sha1 sum considering all the content slots for this revision.
-            type: string
-          rev_size:
-            description: >
-              Byte size 'sum' of all the content slots for this revision. This
-              'size' is approximate, but may not be exact, depending on the kind
-              of data that is stored in the content slots.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - comment: dolor
-            editor:
-              edit_count: 1351079888211148
-              groups:
-                - dolor
-              is_bot: false
-              is_system: false
-              is_temp: false
-              registration_dt: '2021-01-01T00:00:00.0Z'
-              user_id: 1351079888211148
-              user_text: dolor
-            is_comment_visible: false
-            is_content_visible: false
-            is_editor_visible: false
-            is_minor_edit: false
-            rev_dt: '2021-01-01T00:00:00.0Z'
-            rev_id: 1351079888211149
-            rev_parent_id: 1351079888211148
-            rev_sha1: dolor
-            rev_size: 1351079888211148
-  revision:
-    title: fragment/mediawiki/state/entity/revision
-    description: Fields for MediaWiki revision entity.
-    $id: /fragment/mediawiki/state/entity/revision/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - rev_id
-      - rev_dt
-    properties:
-      comment:
-        description: The comment left by the editor when this revision was made.
-        type: string
-      editor:
-        title: fragment/mediawiki/state/entity/user
-        description: Represents the MediaWiki user that made this edit.
-        $id: /fragment/mediawiki/state/entity/user/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          edit_count:
-            description: >
-              The number of edits this user has made at the time of this event.
-              Not present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          groups:
-            description: >
-              A list of the groups this user belongs to.  E.g. bot, sysop etc.
-              Not present for anonymous users.
-            type: array
-            items:
-              type: string
-              minLength: 1
-          is_bot:
-            description: >
-              True if this user is considered to be a bot at the time of this
-              event. This is checked via the $user->isBot() method, which
-              considers both user_groups and user permissions.
-            type: boolean
-          is_system:
-            description: >
-              True if the user is a MediaWiki 'system' user. These are users
-              that cannot 'authenticate'.  These are usually listed in
-              ReservedUsernames.
-            type: boolean
-          is_temp:
-            description: >
-              True if the user is an autocreated temporary MediaWiki user. This
-              is used for IP masking.
-            type: boolean
-          registration_dt:
-            description: >
-              The datetime of the user account registration. Not present for
-              anonymous users or if missing in the MW database.
-            type: string
-            format: date-time
-            maxLength: 128
-          user_id:
-            description: >
-              The user ID that performed this change.  This is optional, and
-              will not be present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          user_text:
-            description: >
-              The user name or text representation of the user that performed
-              this change.
-            type: string
-            minLength: 1
-        examples:
-          - edit_count: 1351079888211148
-            groups:
-              - dolor
-            is_bot: false
-            is_system: false
-            is_temp: false
-            registration_dt: '2021-01-01T00:00:00.0Z'
-            user_id: 1351079888211148
-            user_text: dolor
-      is_comment_visible:
-        description: >
-          Whether the comment of the revision is visible. See
-          RevisionRecord->DELETED_COMMENT.
-        type: boolean
-      is_content_visible:
-        description: >
-          Whether the revision's content body is visible. If this is false, then
-          content should be redacted. See RevisionRecord->DELETED_TEXT
-        type: boolean
-      is_editor_visible:
-        description: >
-          Whether the revision's editor information is visible. Affects editor
-          field. See RevisionRecord->DELETED_USER
-        type: boolean
-      is_minor_edit:
-        description: True if the editor marked this revision as a minor edit.
-        type: boolean
-      rev_dt:
-        description: >
-          Time this revision was created. This is rev_timestamp in the MediaWiki
-          database.
-        type: string
-        format: date-time
-        maxLength: 128
-      rev_id:
-        description: The (database) revision ID.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 1
-      rev_parent_id:
-        description: This revision's parent rev_id.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      rev_sha1:
-        description: |
-          sha1 sum considering all the content slots for this revision.
-        type: string
-      rev_size:
-        description: >
-          Byte size 'sum' of all the content slots for this revision. This
-          'size' is approximate, but may not be exact, depending on the kind of
-          data that is stored in the content slots.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - comment: dolor
-        editor:
-          edit_count: 1351079888211148
-          groups:
-            - dolor
-          is_bot: false
-          is_system: false
-          is_temp: false
-          registration_dt: '2021-01-01T00:00:00.0Z'
-          user_id: 1351079888211148
-          user_text: dolor
-        is_comment_visible: false
-        is_content_visible: false
-        is_editor_visible: false
-        is_minor_edit: false
-        rev_dt: '2021-01-01T00:00:00.0Z'
-        rev_id: 1351079888211149
-        rev_parent_id: 1351079888211148
-        rev_sha1: dolor
-        rev_size: 1351079888211148
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-examples:
-  - changelog_kind: insert
-    comment: dolor
-    created_redirect_page:
-      is_redirect: false
-      namespace_id: 1351079888211148
-      page_id: 1351079888211148
-      page_title: dolor
-      revision_count: 1351079888211148
-    page:
-      is_redirect: false
-      namespace_id: 1351079888211148
-      page_id: 1351079888211148
-      page_title: dolor
-      revision_count: 1351079888211148
-    page_change_kind: create
-    performer:
-      edit_count: 1351079888211148
-      groups:
-        - dolor
-      is_bot: false
-      is_system: false
-      is_temp: false
-      registration_dt: '2021-01-01T00:00:00.0Z'
-      user_id: 1351079888211148
-      user_text: dolor
-    prior_state:
-      page:
-        is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-        revision_count: 1351079888211148
-      revision:
-        comment: dolor
-        editor:
-          edit_count: 1351079888211148
-          groups:
-            - dolor
-          is_bot: false
-          is_system: false
-          is_temp: false
-          registration_dt: '2021-01-01T00:00:00.0Z'
-          user_id: 1351079888211148
-          user_text: dolor
-        is_comment_visible: false
-        is_content_visible: false
-        is_editor_visible: false
-        is_minor_edit: false
-        rev_dt: '2021-01-01T00:00:00.0Z'
-        rev_id: 1351079888211149
-        rev_parent_id: 1351079888211148
-        rev_sha1: dolor
-        rev_size: 1351079888211148
-    revision:
-      comment: dolor
-      editor:
-        edit_count: 1351079888211148
-        groups:
-          - dolor
-        is_bot: false
-        is_system: false
-        is_temp: false
-        registration_dt: '2021-01-01T00:00:00.0Z'
-        user_id: 1351079888211148
-        user_text: dolor
-      is_comment_visible: false
-      is_content_visible: false
-      is_editor_visible: false
-      is_minor_edit: false
-      rev_dt: '2021-01-01T00:00:00.0Z'
-      rev_id: 1351079888211149
-      rev_parent_id: 1351079888211148
-      rev_sha1: dolor
-      rev_size: 1351079888211148
-    wiki_id: dolor
diff --git a/jsonschema/fragment/mediawiki/state/change/page/1.1.0 b/jsonschema/fragment/mediawiki/state/change/page/1.1.0
deleted file mode 120000
index ac6cab8..0000000
--- a/jsonschema/fragment/mediawiki/state/change/page/1.1.0
+++ /dev/null
@@ -1 +0,0 @@
-1.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/change/page/1.1.0.yaml b/jsonschema/fragment/mediawiki/state/change/page/1.1.0.yaml
deleted file mode 100644
index 8e94734..0000000
--- a/jsonschema/fragment/mediawiki/state/change/page/1.1.0.yaml
+++ /dev/null
@@ -1,685 +0,0 @@
-title: fragment/mediawiki/state/change/page
-description: >
-  Fragment that represents a MediaWiki page state change in a changelog. This
-  schema can be used in multiple 'enriched' versions of page state changes.
-  E.g., there could be a 'page_change_with_rendered_content' schema that adds
-  fields necessary for representing a change to rendered page content. Because
-  we want this to be reusable, this schema does not attempt to represent
-  revision content (or MCR content 'slots').  If content info is needed, you
-  should add those fields to concrete schema yourself. See the non-fragment
-  mediawiki/page/change schema for working example.
-$id: /fragment/mediawiki/state/change/page/1.1.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - changelog_kind
-  - page_change_kind
-  - wiki_id
-  - page
-  - performer
-  - revision
-properties:
-  changelog_kind:
-    description: >
-      The kind of this event in a changelog. This is used to map the event to an
-      action in a data store.
-    type: string
-    enum:
-      - insert
-      - update
-      - delete
-  comment:
-    description: >
-      The comment left by the user that performed this change. Same as
-      revision.comment on edits.
-    type: string
-  created_redirect_page:
-    title: fragment/mediawiki/state/entity/page
-    description: >
-      Page entity that was created at the old title during a page move. This is
-      only set for page move events. Note that the created_redirect_page will
-      also have its own associated page create event.
-    $id: /fragment/mediawiki/state/entity/page/2.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      revision_count:
-        description: >
-          NOTE: revision_count is never set for created_redirect_page. It is
-          present here for backwards compatibility only.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-  page:
-    title: fragment/mediawiki/state/entity/page
-    description: Fields for MediaWiki page entity.
-    $id: /fragment/mediawiki/state/entity/page/2.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      redirect_page_link:
-        title: fragment/mediawiki/state/entity/page_link
-        description: >
-          If this page is currently a redirect, then this field contains
-          information about the target page the redirect links to.
-        $id: /fragment/mediawiki/state/entity/page_link/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          interwiki_prefix:
-            description: >
-              The interwiki prefix (iw_prefix) of this link. The presence of
-              this prefix implies a target outside the local wiki. See
-              https://meta.wikimedia.org/wiki/Help:Interwiki_linking
-            type: string
-          is_redirect:
-            description: True if the page is a redirect page at the time of this event.
-            type: boolean
-          namespace_id:
-            description: The id of the namespace this page belongs to.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_id:
-            description: The (database) page ID of the page.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_title:
-            description: The normalized title of the page.
-            type: string
-            minLength: 1
-        examples:
-          - interwiki_prefix: dolor
-            is_redirect: false
-            namespace_id: 1351079888211148
-            page_id: 1351079888211148
-            page_title: dolor
-      revision_count:
-        description: >
-          The number of revisions of this page at the time of this event. During
-          a delete, this number of revisions will be archived. This field is
-          likely only set for page delete events, as getting this information on
-          all events is expensive.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-  page_change_kind:
-    description: |
-      The origin kind of the change to this page as viewed by MediaWiki.
-    type: string
-    enum:
-      - create
-      - undelete
-      - edit
-      - move
-      - delete
-      - visibility_change
-  performer:
-    title: fragment/mediawiki/state/entity/user
-    description: >
-      Represents the MediaWiki actor that made this change. If this change is an
-      edit, this will be the same as revision.editor.
-    $id: /fragment/mediawiki/state/entity/user/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    properties:
-      edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      groups:
-        description: >
-          A list of the groups this user belongs to.  E.g. bot, sysop etc. Not
-          present for anonymous users.
-        type: array
-        items:
-          type: string
-          minLength: 1
-      is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      is_system:
-        description: >
-          True if the user is a MediaWiki 'system' user. These are users that
-          cannot 'authenticate'.  These are usually listed in ReservedUsernames.
-        type: boolean
-      is_temp:
-        description: >
-          True if the user is an autocreated temporary MediaWiki user. This is
-          used for IP masking.
-        type: boolean
-      registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_id:
-        description: >
-          The user ID that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_text:
-        description: >
-          The user name or text representation of the user that performed this
-          change.
-        type: string
-        minLength: 1
-    examples:
-      - edit_count: 1351079888211148
-        groups:
-          - dolor
-        is_bot: false
-        is_system: false
-        is_temp: false
-        registration_dt: '2021-01-01T00:00:00.0Z'
-        user_id: 1351079888211148
-        user_text: dolor
-  prior_state:
-    description: >
-      Prior state of this page before this event. Fields are only present if
-      their values have changed.
-    type: object
-    properties:
-      page:
-        title: fragment/mediawiki/state/entity/page
-        description: Fields for MediaWiki page entity.
-        $id: /fragment/mediawiki/state/entity/page/2.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          is_redirect:
-            description: True if the page is a redirect page at the time of this event.
-            type: boolean
-          namespace_id:
-            description: The id of the namespace this page belongs to.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_id:
-            description: The (database) page ID of the page.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_title:
-            description: The normalized title of the page.
-            type: string
-            minLength: 1
-          revision_count:
-            description: >
-              NOTE: prior_state.page.revision_count is unlikely to be set, as
-              getting the # of revisions previous to this change is difficult.
-              This field is present here for backwards compatibiliy.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - is_redirect: false
-            namespace_id: 1351079888211148
-            page_id: 1351079888211148
-            page_title: dolor
-      revision:
-        title: fragment/mediawiki/state/entity/revision
-        description: Fields for MediaWiki revision entity.
-        $id: /fragment/mediawiki/state/entity/revision/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          comment:
-            description: The comment left by the editor when this revision was made.
-            type: string
-          editor:
-            title: fragment/mediawiki/state/entity/user
-            description: Represents the MediaWiki user that made this edit.
-            $id: /fragment/mediawiki/state/entity/user/1.0.0
-            $schema: 'https://json-schema.org/draft-07/schema#'
-            type: object
-            additionalProperties: false
-            properties:
-              edit_count:
-                description: >
-                  The number of edits this user has made at the time of this
-                  event. Not present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              groups:
-                description: >
-                  A list of the groups this user belongs to.  E.g. bot, sysop
-                  etc. Not present for anonymous users.
-                type: array
-                items:
-                  type: string
-                  minLength: 1
-              is_bot:
-                description: >
-                  True if this user is considered to be a bot at the time of
-                  this event. This is checked via the $user->isBot() method,
-                  which considers both user_groups and user permissions.
-                type: boolean
-              is_system:
-                description: >
-                  True if the user is a MediaWiki 'system' user. These are users
-                  that cannot 'authenticate'.  These are usually listed in
-                  ReservedUsernames.
-                type: boolean
-              is_temp:
-                description: >
-                  True if the user is an autocreated temporary MediaWiki user.
-                  This is used for IP masking.
-                type: boolean
-              registration_dt:
-                description: >
-                  The datetime of the user account registration. Not present for
-                  anonymous users or if missing in the MW database.
-                type: string
-                format: date-time
-                maxLength: 128
-              user_id:
-                description: >
-                  The user ID that performed this change.  This is optional, and
-                  will not be present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              user_text:
-                description: >
-                  The user name or text representation of the user that
-                  performed this change.
-                type: string
-                minLength: 1
-            examples:
-              - edit_count: 1351079888211148
-                groups:
-                  - dolor
-                is_bot: false
-                is_system: false
-                is_temp: false
-                registration_dt: '2021-01-01T00:00:00.0Z'
-                user_id: 1351079888211148
-                user_text: dolor
-          is_comment_visible:
-            description: >
-              Whether the comment of the revision is visible. See
-              RevisionRecord->DELETED_COMMENT.
-            type: boolean
-          is_content_visible:
-            description: >
-              Whether the revision's content body is visible. If this is false,
-              then content should be redacted. See RevisionRecord->DELETED_TEXT
-            type: boolean
-          is_editor_visible:
-            description: >
-              Whether the revision's editor information is visible. Affects
-              editor field. See RevisionRecord->DELETED_USER
-            type: boolean
-          is_minor_edit:
-            description: True if the editor marked this revision as a minor edit.
-            type: boolean
-          rev_dt:
-            description: >
-              Time this revision was created. This is rev_timestamp in the
-              MediaWiki database.
-            type: string
-            format: date-time
-            maxLength: 128
-          rev_id:
-            description: The (database) revision ID.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 1
-          rev_parent_id:
-            description: This revision's parent rev_id.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          rev_sha1:
-            description: |
-              sha1 sum considering all the content slots for this revision.
-            type: string
-          rev_size:
-            description: >
-              Byte size 'sum' of all the content slots for this revision. This
-              'size' is approximate, but may not be exact, depending on the kind
-              of data that is stored in the content slots.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - comment: dolor
-            editor:
-              edit_count: 1351079888211148
-              groups:
-                - dolor
-              is_bot: false
-              is_system: false
-              is_temp: false
-              registration_dt: '2021-01-01T00:00:00.0Z'
-              user_id: 1351079888211148
-              user_text: dolor
-            is_comment_visible: false
-            is_content_visible: false
-            is_editor_visible: false
-            is_minor_edit: false
-            rev_dt: '2021-01-01T00:00:00.0Z'
-            rev_id: 1351079888211149
-            rev_parent_id: 1351079888211148
-            rev_sha1: dolor
-            rev_size: 1351079888211148
-  revision:
-    title: fragment/mediawiki/state/entity/revision
-    description: Fields for MediaWiki revision entity.
-    $id: /fragment/mediawiki/state/entity/revision/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - rev_id
-      - rev_dt
-    properties:
-      comment:
-        description: The comment left by the editor when this revision was made.
-        type: string
-      editor:
-        title: fragment/mediawiki/state/entity/user
-        description: Represents the MediaWiki user that made this edit.
-        $id: /fragment/mediawiki/state/entity/user/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          edit_count:
-            description: >
-              The number of edits this user has made at the time of this event.
-              Not present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          groups:
-            description: >
-              A list of the groups this user belongs to.  E.g. bot, sysop etc.
-              Not present for anonymous users.
-            type: array
-            items:
-              type: string
-              minLength: 1
-          is_bot:
-            description: >
-              True if this user is considered to be a bot at the time of this
-              event. This is checked via the $user->isBot() method, which
-              considers both user_groups and user permissions.
-            type: boolean
-          is_system:
-            description: >
-              True if the user is a MediaWiki 'system' user. These are users
-              that cannot 'authenticate'.  These are usually listed in
-              ReservedUsernames.
-            type: boolean
-          is_temp:
-            description: >
-              True if the user is an autocreated temporary MediaWiki user. This
-              is used for IP masking.
-            type: boolean
-          registration_dt:
-            description: >
-              The datetime of the user account registration. Not present for
-              anonymous users or if missing in the MW database.
-            type: string
-            format: date-time
-            maxLength: 128
-          user_id:
-            description: >
-              The user ID that performed this change.  This is optional, and
-              will not be present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          user_text:
-            description: >
-              The user name or text representation of the user that performed
-              this change.
-            type: string
-            minLength: 1
-        examples:
-          - edit_count: 1351079888211148
-            groups:
-              - dolor
-            is_bot: false
-            is_system: false
-            is_temp: false
-            registration_dt: '2021-01-01T00:00:00.0Z'
-            user_id: 1351079888211148
-            user_text: dolor
-      is_comment_visible:
-        description: >
-          Whether the comment of the revision is visible. See
-          RevisionRecord->DELETED_COMMENT.
-        type: boolean
-      is_content_visible:
-        description: >
-          Whether the revision's content body is visible. If this is false, then
-          content should be redacted. See RevisionRecord->DELETED_TEXT
-        type: boolean
-      is_editor_visible:
-        description: >
-          Whether the revision's editor information is visible. Affects editor
-          field. See RevisionRecord->DELETED_USER
-        type: boolean
-      is_minor_edit:
-        description: True if the editor marked this revision as a minor edit.
-        type: boolean
-      rev_dt:
-        description: >
-          Time this revision was created. This is rev_timestamp in the MediaWiki
-          database.
-        type: string
-        format: date-time
-        maxLength: 128
-      rev_id:
-        description: The (database) revision ID.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 1
-      rev_parent_id:
-        description: This revision's parent rev_id.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      rev_sha1:
-        description: |
-          sha1 sum considering all the content slots for this revision.
-        type: string
-      rev_size:
-        description: >
-          Byte size 'sum' of all the content slots for this revision. This
-          'size' is approximate, but may not be exact, depending on the kind of
-          data that is stored in the content slots.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - comment: dolor
-        editor:
-          edit_count: 1351079888211148
-          groups:
-            - dolor
-          is_bot: false
-          is_system: false
-          is_temp: false
-          registration_dt: '2021-01-01T00:00:00.0Z'
-          user_id: 1351079888211148
-          user_text: dolor
-        is_comment_visible: false
-        is_content_visible: false
-        is_editor_visible: false
-        is_minor_edit: false
-        rev_dt: '2021-01-01T00:00:00.0Z'
-        rev_id: 1351079888211149
-        rev_parent_id: 1351079888211148
-        rev_sha1: dolor
-        rev_size: 1351079888211148
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-examples:
-  - changelog_kind: insert
-    comment: dolor
-    created_redirect_page:
-      is_redirect: false
-      namespace_id: 1351079888211148
-      page_id: 1351079888211148
-      page_title: dolor
-      revision_count: 1351079888211148
-    page:
-      is_redirect: false
-      namespace_id: 1351079888211148
-      page_id: 1351079888211148
-      page_title: dolor
-      redirect_page_link:
-        interwiki_prefix: dolor
-        is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-      revision_count: 1351079888211148
-    page_change_kind: create
-    performer:
-      edit_count: 1351079888211148
-      groups:
-        - dolor
-      is_bot: false
-      is_system: false
-      is_temp: false
-      registration_dt: '2021-01-01T00:00:00.0Z'
-      user_id: 1351079888211148
-      user_text: dolor
-    prior_state:
-      page:
-        is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-        revision_count: 1351079888211148
-      revision:
-        comment: dolor
-        editor:
-          edit_count: 1351079888211148
-          groups:
-            - dolor
-          is_bot: false
-          is_system: false
-          is_temp: false
-          registration_dt: '2021-01-01T00:00:00.0Z'
-          user_id: 1351079888211148
-          user_text: dolor
-        is_comment_visible: false
-        is_content_visible: false
-        is_editor_visible: false
-        is_minor_edit: false
-        rev_dt: '2021-01-01T00:00:00.0Z'
-        rev_id: 1351079888211149
-        rev_parent_id: 1351079888211148
-        rev_sha1: dolor
-        rev_size: 1351079888211148
-    revision:
-      comment: dolor
-      editor:
-        edit_count: 1351079888211148
-        groups:
-          - dolor
-        is_bot: false
-        is_system: false
-        is_temp: false
-        registration_dt: '2021-01-01T00:00:00.0Z'
-        user_id: 1351079888211148
-        user_text: dolor
-      is_comment_visible: false
-      is_content_visible: false
-      is_editor_visible: false
-      is_minor_edit: false
-      rev_dt: '2021-01-01T00:00:00.0Z'
-      rev_id: 1351079888211149
-      rev_parent_id: 1351079888211148
-      rev_sha1: dolor
-      rev_size: 1351079888211148
-    wiki_id: dolor
-definitions:
-  revision_count:
-    description: >
-      The number of revisions of this page at the time of this event. During a
-      delete, this number of revisions will be archived. This field is likely
-      only set for page delete events, as getting this information on all events
-      is expensive.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
diff --git a/jsonschema/fragment/mediawiki/state/change/page/1.2.0 b/jsonschema/fragment/mediawiki/state/change/page/1.2.0
deleted file mode 120000
index c4a594d..0000000
--- a/jsonschema/fragment/mediawiki/state/change/page/1.2.0
+++ /dev/null
@@ -1 +0,0 @@
-1.2.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/change/page/1.2.0.yaml b/jsonschema/fragment/mediawiki/state/change/page/1.2.0.yaml
deleted file mode 100644
index a6159cc..0000000
--- a/jsonschema/fragment/mediawiki/state/change/page/1.2.0.yaml
+++ /dev/null
@@ -1,684 +0,0 @@
-title: fragment/mediawiki/state/change/page
-description: >
-  Fragment that represents a MediaWiki page state change in a changelog. This
-  schema can be used in multiple 'enriched' versions of page state changes.
-  E.g., there could be a 'page_change_with_rendered_content' schema that adds
-  fields necessary for representing a change to rendered page content. Because
-  we want this to be reusable, this schema does not attempt to represent
-  revision content (or MCR content 'slots').  If content info is needed, you
-  should add those fields to concrete schema yourself. See the non-fragment
-  mediawiki/page/change schema for working example.
-$id: /fragment/mediawiki/state/change/page/1.2.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - changelog_kind
-  - page_change_kind
-  - wiki_id
-  - page
-  - revision
-properties:
-  changelog_kind:
-    description: >
-      The kind of this event in a changelog. This is used to map the event to an
-      action in a data store.
-    type: string
-    enum:
-      - insert
-      - update
-      - delete
-  comment:
-    description: >
-      The comment left by the user that performed this change. Same as
-      revision.comment on edits.
-    type: string
-  created_redirect_page:
-    title: fragment/mediawiki/state/entity/page
-    description: >
-      Page entity that was created at the old title during a page move. This is
-      only set for page move events. Note that the created_redirect_page will
-      also have its own associated page create event.
-    $id: /fragment/mediawiki/state/entity/page/2.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      revision_count:
-        description: >
-          NOTE: revision_count is never set for created_redirect_page. It is
-          present here for backwards compatibility only.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-  page:
-    title: fragment/mediawiki/state/entity/page
-    description: Fields for MediaWiki page entity.
-    $id: /fragment/mediawiki/state/entity/page/2.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      redirect_page_link:
-        title: fragment/mediawiki/state/entity/page_link
-        description: >
-          If this page is currently a redirect, then this field contains
-          information about the target page the redirect links to.
-        $id: /fragment/mediawiki/state/entity/page_link/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          interwiki_prefix:
-            description: >
-              The interwiki prefix (iw_prefix) of this link. The presence of
-              this prefix implies a target outside the local wiki. See
-              https://meta.wikimedia.org/wiki/Help:Interwiki_linking
-            type: string
-          is_redirect:
-            description: True if the page is a redirect page at the time of this event.
-            type: boolean
-          namespace_id:
-            description: The id of the namespace this page belongs to.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_id:
-            description: The (database) page ID of the page.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_title:
-            description: The normalized title of the page.
-            type: string
-            minLength: 1
-        examples:
-          - interwiki_prefix: dolor
-            is_redirect: false
-            namespace_id: 1351079888211148
-            page_id: 1351079888211148
-            page_title: dolor
-      revision_count:
-        description: >
-          The number of revisions of this page at the time of this event. During
-          a delete, this number of revisions will be archived. This field is
-          likely only set for page delete events, as getting this information on
-          all events is expensive.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-  page_change_kind:
-    description: |
-      The origin kind of the change to this page as viewed by MediaWiki.
-    type: string
-    enum:
-      - create
-      - undelete
-      - edit
-      - move
-      - delete
-      - visibility_change
-  performer:
-    title: fragment/mediawiki/state/entity/user
-    description: >
-      Represents the MediaWiki actor that made this change. If this change is an
-      edit, this will be the same as revision.editor.
-    $id: /fragment/mediawiki/state/entity/user/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    properties:
-      edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      groups:
-        description: >
-          A list of the groups this user belongs to.  E.g. bot, sysop etc. Not
-          present for anonymous users.
-        type: array
-        items:
-          type: string
-          minLength: 1
-      is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      is_system:
-        description: >
-          True if the user is a MediaWiki 'system' user. These are users that
-          cannot 'authenticate'.  These are usually listed in ReservedUsernames.
-        type: boolean
-      is_temp:
-        description: >
-          True if the user is an autocreated temporary MediaWiki user. This is
-          used for IP masking.
-        type: boolean
-      registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_id:
-        description: >
-          The user ID that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_text:
-        description: >
-          The user name or text representation of the user that performed this
-          change.
-        type: string
-        minLength: 1
-    examples:
-      - edit_count: 1351079888211148
-        groups:
-          - dolor
-        is_bot: false
-        is_system: false
-        is_temp: false
-        registration_dt: '2021-01-01T00:00:00.0Z'
-        user_id: 1351079888211148
-        user_text: dolor
-  prior_state:
-    description: >
-      Prior state of this page before this event. Fields are only present if
-      their values have changed.
-    type: object
-    properties:
-      page:
-        title: fragment/mediawiki/state/entity/page
-        description: Fields for MediaWiki page entity.
-        $id: /fragment/mediawiki/state/entity/page/2.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          is_redirect:
-            description: True if the page is a redirect page at the time of this event.
-            type: boolean
-          namespace_id:
-            description: The id of the namespace this page belongs to.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_id:
-            description: The (database) page ID of the page.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_title:
-            description: The normalized title of the page.
-            type: string
-            minLength: 1
-          revision_count:
-            description: >
-              NOTE: prior_state.page.revision_count is unlikely to be set, as
-              getting the # of revisions previous to this change is difficult.
-              This field is present here for backwards compatibiliy.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - is_redirect: false
-            namespace_id: 1351079888211148
-            page_id: 1351079888211148
-            page_title: dolor
-      revision:
-        title: fragment/mediawiki/state/entity/revision
-        description: Fields for MediaWiki revision entity.
-        $id: /fragment/mediawiki/state/entity/revision/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          comment:
-            description: The comment left by the editor when this revision was made.
-            type: string
-          editor:
-            title: fragment/mediawiki/state/entity/user
-            description: Represents the MediaWiki user that made this edit.
-            $id: /fragment/mediawiki/state/entity/user/1.0.0
-            $schema: 'https://json-schema.org/draft-07/schema#'
-            type: object
-            additionalProperties: false
-            properties:
-              edit_count:
-                description: >
-                  The number of edits this user has made at the time of this
-                  event. Not present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              groups:
-                description: >
-                  A list of the groups this user belongs to.  E.g. bot, sysop
-                  etc. Not present for anonymous users.
-                type: array
-                items:
-                  type: string
-                  minLength: 1
-              is_bot:
-                description: >
-                  True if this user is considered to be a bot at the time of
-                  this event. This is checked via the $user->isBot() method,
-                  which considers both user_groups and user permissions.
-                type: boolean
-              is_system:
-                description: >
-                  True if the user is a MediaWiki 'system' user. These are users
-                  that cannot 'authenticate'.  These are usually listed in
-                  ReservedUsernames.
-                type: boolean
-              is_temp:
-                description: >
-                  True if the user is an autocreated temporary MediaWiki user.
-                  This is used for IP masking.
-                type: boolean
-              registration_dt:
-                description: >
-                  The datetime of the user account registration. Not present for
-                  anonymous users or if missing in the MW database.
-                type: string
-                format: date-time
-                maxLength: 128
-              user_id:
-                description: >
-                  The user ID that performed this change.  This is optional, and
-                  will not be present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              user_text:
-                description: >
-                  The user name or text representation of the user that
-                  performed this change.
-                type: string
-                minLength: 1
-            examples:
-              - edit_count: 1351079888211148
-                groups:
-                  - dolor
-                is_bot: false
-                is_system: false
-                is_temp: false
-                registration_dt: '2021-01-01T00:00:00.0Z'
-                user_id: 1351079888211148
-                user_text: dolor
-          is_comment_visible:
-            description: >
-              Whether the comment of the revision is visible. See
-              RevisionRecord->DELETED_COMMENT.
-            type: boolean
-          is_content_visible:
-            description: >
-              Whether the revision's content body is visible. If this is false,
-              then content should be redacted. See RevisionRecord->DELETED_TEXT
-            type: boolean
-          is_editor_visible:
-            description: >
-              Whether the revision's editor information is visible. Affects
-              editor field. See RevisionRecord->DELETED_USER
-            type: boolean
-          is_minor_edit:
-            description: True if the editor marked this revision as a minor edit.
-            type: boolean
-          rev_dt:
-            description: >
-              Time this revision was created. This is rev_timestamp in the
-              MediaWiki database.
-            type: string
-            format: date-time
-            maxLength: 128
-          rev_id:
-            description: The (database) revision ID.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 1
-          rev_parent_id:
-            description: This revision's parent rev_id.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          rev_sha1:
-            description: |
-              sha1 sum considering all the content slots for this revision.
-            type: string
-          rev_size:
-            description: >
-              Byte size 'sum' of all the content slots for this revision. This
-              'size' is approximate, but may not be exact, depending on the kind
-              of data that is stored in the content slots.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - comment: dolor
-            editor:
-              edit_count: 1351079888211148
-              groups:
-                - dolor
-              is_bot: false
-              is_system: false
-              is_temp: false
-              registration_dt: '2021-01-01T00:00:00.0Z'
-              user_id: 1351079888211148
-              user_text: dolor
-            is_comment_visible: false
-            is_content_visible: false
-            is_editor_visible: false
-            is_minor_edit: false
-            rev_dt: '2021-01-01T00:00:00.0Z'
-            rev_id: 1351079888211149
-            rev_parent_id: 1351079888211148
-            rev_sha1: dolor
-            rev_size: 1351079888211148
-  revision:
-    title: fragment/mediawiki/state/entity/revision
-    description: Fields for MediaWiki revision entity.
-    $id: /fragment/mediawiki/state/entity/revision/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - rev_id
-      - rev_dt
-    properties:
-      comment:
-        description: The comment left by the editor when this revision was made.
-        type: string
-      editor:
-        title: fragment/mediawiki/state/entity/user
-        description: Represents the MediaWiki user that made this edit.
-        $id: /fragment/mediawiki/state/entity/user/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          edit_count:
-            description: >
-              The number of edits this user has made at the time of this event.
-              Not present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          groups:
-            description: >
-              A list of the groups this user belongs to.  E.g. bot, sysop etc.
-              Not present for anonymous users.
-            type: array
-            items:
-              type: string
-              minLength: 1
-          is_bot:
-            description: >
-              True if this user is considered to be a bot at the time of this
-              event. This is checked via the $user->isBot() method, which
-              considers both user_groups and user permissions.
-            type: boolean
-          is_system:
-            description: >
-              True if the user is a MediaWiki 'system' user. These are users
-              that cannot 'authenticate'.  These are usually listed in
-              ReservedUsernames.
-            type: boolean
-          is_temp:
-            description: >
-              True if the user is an autocreated temporary MediaWiki user. This
-              is used for IP masking.
-            type: boolean
-          registration_dt:
-            description: >
-              The datetime of the user account registration. Not present for
-              anonymous users or if missing in the MW database.
-            type: string
-            format: date-time
-            maxLength: 128
-          user_id:
-            description: >
-              The user ID that performed this change.  This is optional, and
-              will not be present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          user_text:
-            description: >
-              The user name or text representation of the user that performed
-              this change.
-            type: string
-            minLength: 1
-        examples:
-          - edit_count: 1351079888211148
-            groups:
-              - dolor
-            is_bot: false
-            is_system: false
-            is_temp: false
-            registration_dt: '2021-01-01T00:00:00.0Z'
-            user_id: 1351079888211148
-            user_text: dolor
-      is_comment_visible:
-        description: >
-          Whether the comment of the revision is visible. See
-          RevisionRecord->DELETED_COMMENT.
-        type: boolean
-      is_content_visible:
-        description: >
-          Whether the revision's content body is visible. If this is false, then
-          content should be redacted. See RevisionRecord->DELETED_TEXT
-        type: boolean
-      is_editor_visible:
-        description: >
-          Whether the revision's editor information is visible. Affects editor
-          field. See RevisionRecord->DELETED_USER
-        type: boolean
-      is_minor_edit:
-        description: True if the editor marked this revision as a minor edit.
-        type: boolean
-      rev_dt:
-        description: >
-          Time this revision was created. This is rev_timestamp in the MediaWiki
-          database.
-        type: string
-        format: date-time
-        maxLength: 128
-      rev_id:
-        description: The (database) revision ID.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 1
-      rev_parent_id:
-        description: This revision's parent rev_id.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      rev_sha1:
-        description: |
-          sha1 sum considering all the content slots for this revision.
-        type: string
-      rev_size:
-        description: >
-          Byte size 'sum' of all the content slots for this revision. This
-          'size' is approximate, but may not be exact, depending on the kind of
-          data that is stored in the content slots.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - comment: dolor
-        editor:
-          edit_count: 1351079888211148
-          groups:
-            - dolor
-          is_bot: false
-          is_system: false
-          is_temp: false
-          registration_dt: '2021-01-01T00:00:00.0Z'
-          user_id: 1351079888211148
-          user_text: dolor
-        is_comment_visible: false
-        is_content_visible: false
-        is_editor_visible: false
-        is_minor_edit: false
-        rev_dt: '2021-01-01T00:00:00.0Z'
-        rev_id: 1351079888211149
-        rev_parent_id: 1351079888211148
-        rev_sha1: dolor
-        rev_size: 1351079888211148
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-examples:
-  - changelog_kind: insert
-    comment: dolor
-    created_redirect_page:
-      is_redirect: false
-      namespace_id: 1351079888211148
-      page_id: 1351079888211148
-      page_title: dolor
-      revision_count: 1351079888211148
-    page:
-      is_redirect: false
-      namespace_id: 1351079888211148
-      page_id: 1351079888211148
-      page_title: dolor
-      redirect_page_link:
-        interwiki_prefix: dolor
-        is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-      revision_count: 1351079888211148
-    page_change_kind: create
-    performer:
-      edit_count: 1351079888211148
-      groups:
-        - dolor
-      is_bot: false
-      is_system: false
-      is_temp: false
-      registration_dt: '2021-01-01T00:00:00.0Z'
-      user_id: 1351079888211148
-      user_text: dolor
-    prior_state:
-      page:
-        is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-        revision_count: 1351079888211148
-      revision:
-        comment: dolor
-        editor:
-          edit_count: 1351079888211148
-          groups:
-            - dolor
-          is_bot: false
-          is_system: false
-          is_temp: false
-          registration_dt: '2021-01-01T00:00:00.0Z'
-          user_id: 1351079888211148
-          user_text: dolor
-        is_comment_visible: false
-        is_content_visible: false
-        is_editor_visible: false
-        is_minor_edit: false
-        rev_dt: '2021-01-01T00:00:00.0Z'
-        rev_id: 1351079888211149
-        rev_parent_id: 1351079888211148
-        rev_sha1: dolor
-        rev_size: 1351079888211148
-    revision:
-      comment: dolor
-      editor:
-        edit_count: 1351079888211148
-        groups:
-          - dolor
-        is_bot: false
-        is_system: false
-        is_temp: false
-        registration_dt: '2021-01-01T00:00:00.0Z'
-        user_id: 1351079888211148
-        user_text: dolor
-      is_comment_visible: false
-      is_content_visible: false
-      is_editor_visible: false
-      is_minor_edit: false
-      rev_dt: '2021-01-01T00:00:00.0Z'
-      rev_id: 1351079888211149
-      rev_parent_id: 1351079888211148
-      rev_sha1: dolor
-      rev_size: 1351079888211148
-    wiki_id: dolor
-definitions:
-  revision_count:
-    description: >
-      The number of revisions of this page at the time of this event. During a
-      delete, this number of revisions will be archived. This field is likely
-      only set for page delete events, as getting this information on all events
-      is expensive.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
diff --git a/jsonschema/fragment/mediawiki/state/change/page/CHANGELOG.md b/jsonschema/fragment/mediawiki/state/change/page/CHANGELOG.md
deleted file mode 100644
index 89c04bd..0000000
--- a/jsonschema/fragment/mediawiki/state/change/page/CHANGELOG.md
+++ /dev/null
@@ -1,22 +0,0 @@
-### Version 1.2.0
-- performer is now optional.  We don't set it for revision visibility changes where the change is admin suppressed.
-  https://phabricator.wikimedia.org/T342487
-  NOTE: While removing required-ness is technically a breaking change
-  that requires a major version bump,
-  it should not break any consumers in this case.
-  We've added an exception in .jsonschema-tools.yaml to skip the
-  backwards compatibility check for version 1.2.0.
-
-### Version 1.1.0
-- Create a local `definitions` to DRY up referencing
-  repeated fields, e.g. `revision_count`.
-
-- Declare `revision_count` field in extended page entities directly in this schema.
-  `revision_count` has been removed from fragment/mediawiki/state/entity/page
-  to make that entity schema more reusable.
-
-- Add new `page.redirect_page_link` field using fragment/mediawiki/state/entity/page_link
-  to represent the page to which a redirect page links to.
-  https://phabricator.wikimedia.org/T325315
-
-
diff --git a/jsonschema/fragment/mediawiki/state/change/page/current.yaml b/jsonschema/fragment/mediawiki/state/change/page/current.yaml
deleted file mode 100644
index d099806..0000000
--- a/jsonschema/fragment/mediawiki/state/change/page/current.yaml
+++ /dev/null
@@ -1,154 +0,0 @@
-title: fragment/mediawiki/state/change/page
-
-description: >
-  Fragment that represents a MediaWiki page state change in a changelog.
-  This schema can be used in multiple 'enriched' versions of page state changes.
-  E.g., there could be a 'page_change_with_rendered_content'
-  schema that adds fields necessary for representing a change to rendered page content.
-  Because we want this to be reusable, this schema does not attempt to represent
-  revision content (or MCR content 'slots').  If content info is needed, you should
-  add those fields to concrete schema yourself.
-  See the non-fragment mediawiki/page/change schema for working example.
-
-$id: /fragment/mediawiki/state/change/page/1.2.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-
-required:
-  - changelog_kind
-  - page_change_kind
-  - wiki_id
-  - page
-  - revision
-
-properties:
-
-  # NOTE: As we make more state change streams, we should
-  # probably factor this field out into its own fragment.
-  # See also: https://phabricator.wikimedia.org/T310082
-  changelog_kind:
-    type: string
-    description: >
-      The kind of this event in a changelog. This is used
-      to map the event to an action in a data store.
-    enum:
-      - insert
-      - update
-      - delete
-
-  page_change_kind:
-    type: string
-    description: >
-      The origin kind of the change to this page as viewed by MediaWiki.
-    enum:
-      - create
-      - undelete
-      - edit
-      - move
-      - delete
-      - visibility_change
-
-  # NOTE: This is called 'database' in older MediaWiki event models.
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-
-  performer:
-    description: >
-      Represents the MediaWiki actor that made this change.
-      If this change is an edit, this will be the same as
-      revision.editor.
-    $ref: /fragment/mediawiki/state/entity/user/1.0.0
-
-  comment:
-    description: >
-      The comment left by the user that performed this change.
-      Same as revision.comment on edits.
-    type: string
-
-  page:
-    allOf:
-      - $ref: /fragment/mediawiki/state/entity/page/2.0.0
-    properties:
-      revision_count:
-        $ref: './#/definitions/revision_count'
-      redirect_page_link:
-        $ref: /fragment/mediawiki/state/entity/page_link/1.0.0
-        description: >
-          If this page is currently a redirect, then this field
-          contains information about the target page the redirect links to.
-    # Page entity page_id and page_title are required for the current page state.
-    required:
-      - page_id
-      - page_title
-
-  revision:
-    # The entity/revision schema
-    $ref: /fragment/mediawiki/state/entity/revision/1.0.0
-    # Revision entity rev_id and rev_dt are required for the current revision state.
-    required:
-      - rev_id
-      - rev_dt
-
-  created_redirect_page:
-    allOf:
-      - $ref: /fragment/mediawiki/state/entity/page/2.0.0
-    properties:
-      # In hindight, including revision_count on created_redirect_page
-      # (via entity/page/1.0.0) was a mistake.  Removing it would be
-      # backwards incompatible though, so we manually declare it here.
-      revision_count:
-        $ref: './#/definitions/revision_count'
-        description: >
-          NOTE: revision_count is never set for created_redirect_page.
-          It is present here for backwards compatibility only.
-    description: >
-      Page entity that was created at the old title during a page move.
-      This is only set for page move events.
-      Note that the created_redirect_page will also have its
-      own associated page create event.
-    required:
-      - page_id
-      - page_title
-
-  prior_state:
-    type: object
-    description: >
-      Prior state of this page before this event.
-      Fields are only present if their values have changed.
-    properties:
-      page:
-        allOf:
-          - $ref: /fragment/mediawiki/state/entity/page/2.0.0
-        properties:
-          revision_count:
-            $ref: './#/definitions/revision_count'
-            description: >
-              NOTE: prior_state.page.revision_count is unlikely to be set, as
-              getting the # of revisions previous to this change is difficult.
-              This field is present here for backwards compatibiliy.
-      revision:
-        # NOTE: we do not ref the local file's properties.revision in order
-        # to avoid adding required fields here.  You need to update
-        # this version if upgrading the entity/revision schema version.
-        $ref: /fragment/mediawiki/state/entity/revision/1.0.0
-
-
-# Definitions are not part of the final schema, but are placed here
-# for local DRY for field $refs.
-# https://cswr.github.io/JsonSchema/spec/definitions_references/
-definitions:
-
-  revision_count:
-    description: >
-      The number of revisions of this page at the time of this event.
-      During a delete, this number of revisions will be archived.
-      This field is likely only set for page delete events, as getting
-      this information on all events is expensive.
-    type: integer
-    minimum: 0
-
diff --git a/jsonschema/fragment/mediawiki/state/change/page/latest b/jsonschema/fragment/mediawiki/state/change/page/latest
deleted file mode 120000
index c4a594d..0000000
--- a/jsonschema/fragment/mediawiki/state/change/page/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.2.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/change/page/latest.yaml b/jsonschema/fragment/mediawiki/state/change/page/latest.yaml
deleted file mode 120000
index c4a594d..0000000
--- a/jsonschema/fragment/mediawiki/state/change/page/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.2.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/content/1.0.0 b/jsonschema/fragment/mediawiki/state/entity/content/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/content/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/content/1.0.0.yaml b/jsonschema/fragment/mediawiki/state/entity/content/1.0.0.yaml
deleted file mode 100644
index e7de3c5..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/content/1.0.0.yaml
+++ /dev/null
@@ -1,42 +0,0 @@
-title: fragment/mediawiki/state/entity/content
-description: |
-  Fields for representing MediaWiki page revision content.
-$id: /fragment/mediawiki/state/entity/content/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-properties:
-  content_body:
-    description: >
-      Content body. NOTE: This field is not required, and is often not set in
-      streams as it can make events very large. It is included here for events
-      that do include the content body.
-    type: string
-  content_format:
-    description: >-
-      The 'content type' of the content.  E.g. wikitext/html. This is similiar
-      to a MIME type.
-    type: string
-  content_model:
-    description: 'MediaWiki''s content model of this content. E.g. wikitext, json, etc.'
-    type: string
-  content_sha1:
-    description: sha1 sum of the content body.
-    type: string
-  content_size:
-    description: Byte size of the content body.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  origin_rev_id:
-    description: Revision in which this slot was originally created
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-examples:
-  - content_body: dolor
-    content_format: dolor
-    content_model: dolor
-    content_sha1: dolor
-    content_size: 1351079888211148
-    origin_rev_id: 1351079888211148
diff --git a/jsonschema/fragment/mediawiki/state/entity/content/current.yaml b/jsonschema/fragment/mediawiki/state/entity/content/current.yaml
deleted file mode 100644
index 67d2256..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/content/current.yaml
+++ /dev/null
@@ -1,44 +0,0 @@
-title: fragment/mediawiki/state/entity/content
-description: >
-  Fields for representing MediaWiki page revision content.
-
-$id: /fragment/mediawiki/state/entity/content/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-
-properties:
-
-  content_model:
-    type: string
-    description: MediaWiki's content model of this content.
-      E.g. wikitext, json, etc.
-
-  content_format:
-    type: string
-    description:
-      The 'content type' of the content.  E.g. wikitext/html.
-      This is similiar to a MIME type.
-
-  content_size:
-    type: integer
-    description: Byte size of the content body.
-    minimum: 0
-
-  content_sha1:
-    description: sha1 sum of the content body.
-    type: string
-
-  origin_rev_id:
-    type: integer
-    description: Revision in which this slot was originally created
-    minimum: 0
-
-  content_body:
-    type: string
-    description: >
-      Content body.
-      NOTE: This field is not required,
-      and is often not set in streams as it can make events very large.
-      It is included here for events that do include the content body.
-
diff --git a/jsonschema/fragment/mediawiki/state/entity/content/latest b/jsonschema/fragment/mediawiki/state/entity/content/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/content/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/content/latest.yaml b/jsonschema/fragment/mediawiki/state/entity/content/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/content/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/page/1.0.0 b/jsonschema/fragment/mediawiki/state/entity/page/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/page/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/page/1.0.0.yaml b/jsonschema/fragment/mediawiki/state/entity/page/1.0.0.yaml
deleted file mode 100644
index 5608317..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/page/1.0.0.yaml
+++ /dev/null
@@ -1,39 +0,0 @@
-title: fragment/mediawiki/state/entity/page
-description: Fields for MediaWiki page entity.
-$id: /fragment/mediawiki/state/entity/page/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-properties:
-  is_redirect:
-    description: True if the page is a redirect page at the time of this event.
-    type: boolean
-  namespace_id:
-    description: The id of the namespace this page belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_id:
-    description: The (database) page ID of the page.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-  revision_count:
-    description: >
-      The number of revisions of this page at the time of this event. During a
-      delete, this number of revisions will be archived. This field is likely
-      only set for page delete events, as getting this information on all events
-      is expensive.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-examples:
-  - is_redirect: false
-    namespace_id: 1351079888211148
-    page_id: 1351079888211148
-    page_title: dolor
-    revision_count: 1351079888211148
diff --git a/jsonschema/fragment/mediawiki/state/entity/page/2.0.0 b/jsonschema/fragment/mediawiki/state/entity/page/2.0.0
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/page/2.0.0
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/page/2.0.0.yaml b/jsonschema/fragment/mediawiki/state/entity/page/2.0.0.yaml
deleted file mode 100644
index 315a6fd..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/page/2.0.0.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-title: fragment/mediawiki/state/entity/page
-description: Fields for MediaWiki page entity.
-$id: /fragment/mediawiki/state/entity/page/2.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-properties:
-  is_redirect:
-    description: True if the page is a redirect page at the time of this event.
-    type: boolean
-  namespace_id:
-    description: The id of the namespace this page belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_id:
-    description: The (database) page ID of the page.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-examples:
-  - is_redirect: false
-    namespace_id: 1351079888211148
-    page_id: 1351079888211148
-    page_title: dolor
diff --git a/jsonschema/fragment/mediawiki/state/entity/page/CHANGELOG.md b/jsonschema/fragment/mediawiki/state/entity/page/CHANGELOG.md
deleted file mode 100644
index 1b3ffcf..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/page/CHANGELOG.md
+++ /dev/null
@@ -1,5 +0,0 @@
-### Version 2.0.0
-- Removed `revision_count` field from fragment/mediawiki/state/entity/page schema.
-  This is added manually in fragment/mediawiki/state/change/page instead to keep
-  entity/page more re-usable
-
diff --git a/jsonschema/fragment/mediawiki/state/entity/page/current.yaml b/jsonschema/fragment/mediawiki/state/entity/page/current.yaml
deleted file mode 100644
index 90f540f..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/page/current.yaml
+++ /dev/null
@@ -1,30 +0,0 @@
-title: fragment/mediawiki/state/entity/page
-description: Fields for MediaWiki page entity.
-
-$id: /fragment/mediawiki/state/entity/page/2.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-
-properties:
-
-  page_id:
-    description: The (database) page ID of the page.
-    type: integer
-    minimum: 0
-
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-
-  namespace_id:
-    description: The id of the namespace this page belongs to.
-    type: integer
-    minimum: 0
-
-  is_redirect:
-    description: True if the page is a redirect page at the time of this event.
-    type: boolean
-
-
diff --git a/jsonschema/fragment/mediawiki/state/entity/page/latest b/jsonschema/fragment/mediawiki/state/entity/page/latest
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/page/latest
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/page/latest.yaml b/jsonschema/fragment/mediawiki/state/entity/page/latest.yaml
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/page/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/page_link/1.0.0 b/jsonschema/fragment/mediawiki/state/entity/page_link/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/page_link/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/page_link/1.0.0.yaml b/jsonschema/fragment/mediawiki/state/entity/page_link/1.0.0.yaml
deleted file mode 100644
index 2f8901f..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/page_link/1.0.0.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
-title: fragment/mediawiki/state/entity/page_link
-description: Fields for a link to a mediawiki page.
-$id: /fragment/mediawiki/state/entity/page_link/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-properties:
-  interwiki_prefix:
-    description: >
-      The interwiki prefix (iw_prefix) of this link. The presence of this prefix
-      implies a target outside the local wiki. See
-      https://meta.wikimedia.org/wiki/Help:Interwiki_linking
-    type: string
-  is_redirect:
-    description: True if the page is a redirect page at the time of this event.
-    type: boolean
-  namespace_id:
-    description: The id of the namespace this page belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_id:
-    description: The (database) page ID of the page.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-examples:
-  - interwiki_prefix: dolor
-    is_redirect: false
-    namespace_id: 1351079888211148
-    page_id: 1351079888211148
-    page_title: dolor
diff --git a/jsonschema/fragment/mediawiki/state/entity/page_link/CHANGELOG.md b/jsonschema/fragment/mediawiki/state/entity/page_link/CHANGELOG.md
deleted file mode 100644
index 5fbd666..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/page_link/CHANGELOG.md
+++ /dev/null
@@ -1,9 +0,0 @@
-### Version 1.0.0
-
-- Initital entity model to represent MediaWiki page links.
-  This was created to support adding redirect link info to mediawiki/page/change:
-  https://phabricator.wikimedia.org/T325315.
-
-  Fields will be added as we add support for more types of links.
-  https://phabricator.wikimedia.org/T331399
-
diff --git a/jsonschema/fragment/mediawiki/state/entity/page_link/current.yaml b/jsonschema/fragment/mediawiki/state/entity/page_link/current.yaml
deleted file mode 100644
index fea1ef9..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/page_link/current.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-title: fragment/mediawiki/state/entity/page_link
-description: Fields for a link to a mediawiki page.
-
-$id: /fragment/mediawiki/state/entity/page_link/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-
-allOf:
-- $ref: /fragment/mediawiki/state/entity/page/2.0.0
-properties:
-  interwiki_prefix:
-    type: string
-    description: >
-      The interwiki prefix (iw_prefix) of this link.
-      The presence of this prefix implies a target outside the local wiki.
-      See https://meta.wikimedia.org/wiki/Help:Interwiki_linking
diff --git a/jsonschema/fragment/mediawiki/state/entity/page_link/latest b/jsonschema/fragment/mediawiki/state/entity/page_link/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/page_link/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/page_link/latest.yaml b/jsonschema/fragment/mediawiki/state/entity/page_link/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/page_link/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/revision/1.0.0 b/jsonschema/fragment/mediawiki/state/entity/revision/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/revision/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/revision/1.0.0.yaml b/jsonschema/fragment/mediawiki/state/entity/revision/1.0.0.yaml
deleted file mode 100644
index 8aa4ca9..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/revision/1.0.0.yaml
+++ /dev/null
@@ -1,147 +0,0 @@
-title: fragment/mediawiki/state/entity/revision
-description: Fields for MediaWiki revision entity.
-$id: /fragment/mediawiki/state/entity/revision/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-properties:
-  comment:
-    description: The comment left by the editor when this revision was made.
-    type: string
-  editor:
-    title: fragment/mediawiki/state/entity/user
-    description: Represents the MediaWiki user that made this edit.
-    $id: /fragment/mediawiki/state/entity/user/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    properties:
-      edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      groups:
-        description: >
-          A list of the groups this user belongs to.  E.g. bot, sysop etc. Not
-          present for anonymous users.
-        type: array
-        items:
-          type: string
-          minLength: 1
-      is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      is_system:
-        description: >
-          True if the user is a MediaWiki 'system' user. These are users that
-          cannot 'authenticate'.  These are usually listed in ReservedUsernames.
-        type: boolean
-      is_temp:
-        description: >
-          True if the user is an autocreated temporary MediaWiki user. This is
-          used for IP masking.
-        type: boolean
-      registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_id:
-        description: >
-          The user ID that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_text:
-        description: >
-          The user name or text representation of the user that performed this
-          change.
-        type: string
-        minLength: 1
-    examples:
-      - edit_count: 1351079888211148
-        groups:
-          - dolor
-        is_bot: false
-        is_system: false
-        is_temp: false
-        registration_dt: '2021-01-01T00:00:00.0Z'
-        user_id: 1351079888211148
-        user_text: dolor
-  is_comment_visible:
-    description: >
-      Whether the comment of the revision is visible. See
-      RevisionRecord->DELETED_COMMENT.
-    type: boolean
-  is_content_visible:
-    description: >
-      Whether the revision's content body is visible. If this is false, then
-      content should be redacted. See RevisionRecord->DELETED_TEXT
-    type: boolean
-  is_editor_visible:
-    description: >
-      Whether the revision's editor information is visible. Affects editor
-      field. See RevisionRecord->DELETED_USER
-    type: boolean
-  is_minor_edit:
-    description: True if the editor marked this revision as a minor edit.
-    type: boolean
-  rev_dt:
-    description: >
-      Time this revision was created. This is rev_timestamp in the MediaWiki
-      database.
-    type: string
-    format: date-time
-    maxLength: 128
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  rev_parent_id:
-    description: This revision's parent rev_id.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_sha1:
-    description: |
-      sha1 sum considering all the content slots for this revision.
-    type: string
-  rev_size:
-    description: >
-      Byte size 'sum' of all the content slots for this revision. This 'size' is
-      approximate, but may not be exact, depending on the kind of data that is
-      stored in the content slots.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-examples:
-  - comment: dolor
-    editor:
-      edit_count: 1351079888211148
-      groups:
-        - dolor
-      is_bot: false
-      is_system: false
-      is_temp: false
-      registration_dt: '2021-01-01T00:00:00.0Z'
-      user_id: 1351079888211148
-      user_text: dolor
-    is_comment_visible: false
-    is_content_visible: false
-    is_editor_visible: false
-    is_minor_edit: false
-    rev_dt: '2021-01-01T00:00:00.0Z'
-    rev_id: 1351079888211149
-    rev_parent_id: 1351079888211148
-    rev_sha1: dolor
-    rev_size: 1351079888211148
diff --git a/jsonschema/fragment/mediawiki/state/entity/revision/current.yaml b/jsonschema/fragment/mediawiki/state/entity/revision/current.yaml
deleted file mode 100644
index 9d2da46..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/revision/current.yaml
+++ /dev/null
@@ -1,73 +0,0 @@
-title: fragment/mediawiki/state/entity/revision
-description: Fields for MediaWiki revision entity.
-
-$id: /fragment/mediawiki/state/entity/revision/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-
-properties:
-
-  rev_id:
-    type: integer
-    description: The (database) revision ID.
-    minimum: 1
-
-  rev_dt:
-    type: string
-    description: >
-      Time this revision was created.
-      This is rev_timestamp in the MediaWiki database.
-    format: date-time
-    maxLength: 128
-
-  rev_parent_id:
-    type: integer
-    description: This revision's parent rev_id.
-    minimum: 0
-
-  rev_sha1:
-    type: string
-    description: >
-      sha1 sum considering all the content slots for this revision.
-
-  rev_size:
-    type: integer
-    description: >
-      Byte size 'sum' of all the content slots for this revision.
-      This 'size' is approximate, but may not be exact, depending
-      on the kind of data that is stored in the content slots.
-    minimum: 0
-
-  comment:
-    type: string
-    description: The comment left by the editor when this revision was made.
-
-  is_minor_edit:
-    type: boolean
-    description: True if the editor marked this revision as a minor edit.
-
-  editor:
-    description: Represents the MediaWiki user that made this edit.
-    $ref: /fragment/mediawiki/state/entity/user/1.0.0
-
-  is_comment_visible:
-    type: boolean
-    description: >
-      Whether the comment of the revision is visible.
-      See RevisionRecord->DELETED_COMMENT.
-
-  is_content_visible:
-    type: boolean
-    description: >
-      Whether the revision's content body is visible.
-      If this is false, then content should be redacted.
-      See RevisionRecord->DELETED_TEXT
-
-  is_editor_visible:
-    type: boolean
-    description: >
-      Whether the revision's editor information is visible.
-      Affects editor field.
-      See RevisionRecord->DELETED_USER
-
diff --git a/jsonschema/fragment/mediawiki/state/entity/revision/latest b/jsonschema/fragment/mediawiki/state/entity/revision/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/revision/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/revision/latest.yaml b/jsonschema/fragment/mediawiki/state/entity/revision/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/revision/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/revision_slots/1.0.0 b/jsonschema/fragment/mediawiki/state/entity/revision_slots/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/revision_slots/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/revision_slots/1.0.0.yaml b/jsonschema/fragment/mediawiki/state/entity/revision_slots/1.0.0.yaml
deleted file mode 100644
index 3fe1a94..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/revision_slots/1.0.0.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-title: fragment/mediawiki/state/entity/revision_slots
-description: >
-  Map type representing MediaWiki's revision content slots. This map is keyed by
-  the slot role name, e.g. 'main'.
-$id: /fragment/mediawiki/state/entity/revision_slots/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties:
-  title: fragment/mediawiki/state/entity/content
-  description: |
-    Fields for representing MediaWiki page revision content.
-  $id: /fragment/mediawiki/state/entity/content/1.0.0
-  $schema: 'https://json-schema.org/draft-07/schema#'
-  type: object
-  additionalProperties: false
-  properties:
-    content_body:
-      description: >
-        Content body. NOTE: This field is not required, and is often not set in
-        streams as it can make events very large. It is included here for events
-        that do include the content body.
-      type: string
-    content_format:
-      description: >-
-        The 'content type' of the content.  E.g. wikitext/html. This is similiar
-        to a MIME type.
-      type: string
-    content_model:
-      description: 'MediaWiki''s content model of this content. E.g. wikitext, json, etc.'
-      type: string
-    content_sha1:
-      description: sha1 sum of the content body.
-      type: string
-    content_size:
-      description: Byte size of the content body.
-      type: integer
-      maximum: 9007199254740991
-      minimum: 0
-    origin_rev_id:
-      description: Revision in which this slot was originally created
-      type: integer
-      maximum: 9007199254740991
-      minimum: 0
-    slot_role:
-      description: Slot role name.
-      type: string
-  examples:
-    - content_body: dolor
-      content_format: dolor
-      content_model: dolor
-      content_sha1: dolor
-      content_size: 1351079888211148
-      origin_rev_id: 1351079888211148
-examples:
-  - dolorb:
-      content_body: dolor
-      content_format: dolor
-      content_model: dolor
-      content_sha1: dolor
-      content_size: 1351079888211148
-      origin_rev_id: 1351079888211148
-      slot_role: dolor
diff --git a/jsonschema/fragment/mediawiki/state/entity/revision_slots/current.yaml b/jsonschema/fragment/mediawiki/state/entity/revision_slots/current.yaml
deleted file mode 100644
index 14176f6..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/revision_slots/current.yaml
+++ /dev/null
@@ -1,17 +0,0 @@
-title: fragment/mediawiki/state/entity/revision_slots
-description: >
-  Map type representing MediaWiki's revision content slots.
-  This map is keyed by the slot role name, e.g. 'main'.
-
-$id: /fragment/mediawiki/state/entity/revision_slots/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties:
-  allOf:
-  # Ref entity/content, and add a slot_role name field.
-  - $ref: /fragment/mediawiki/state/entity/content/1.0.0
-  - properties:
-      slot_role:
-        type: string
-        description:
-          Slot role name.
diff --git a/jsonschema/fragment/mediawiki/state/entity/revision_slots/latest b/jsonschema/fragment/mediawiki/state/entity/revision_slots/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/revision_slots/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/revision_slots/latest.yaml b/jsonschema/fragment/mediawiki/state/entity/revision_slots/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/revision_slots/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/user/1.0.0 b/jsonschema/fragment/mediawiki/state/entity/user/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/user/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/user/1.0.0.yaml b/jsonschema/fragment/mediawiki/state/entity/user/1.0.0.yaml
deleted file mode 100644
index b4ce29d..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/user/1.0.0.yaml
+++ /dev/null
@@ -1,70 +0,0 @@
-title: fragment/mediawiki/state/entity/user
-description: >
-  Fields for MediaWiki actor or user. Note that an 'user' might be a real user
-  account in MediaWiki. For anonymous users, the user_id will not be set.
-$id: /fragment/mediawiki/state/entity/user/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-properties:
-  edit_count:
-    description: >
-      The number of edits this user has made at the time of this event. Not
-      present for anonymous users.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  groups:
-    description: >
-      A list of the groups this user belongs to.  E.g. bot, sysop etc. Not
-      present for anonymous users.
-    type: array
-    items:
-      type: string
-      minLength: 1
-  is_bot:
-    description: >
-      True if this user is considered to be a bot at the time of this event.
-      This is checked via the $user->isBot() method, which considers both
-      user_groups and user permissions.
-    type: boolean
-  is_system:
-    description: >
-      True if the user is a MediaWiki 'system' user. These are users that cannot
-      'authenticate'.  These are usually listed in ReservedUsernames.
-    type: boolean
-  is_temp:
-    description: >
-      True if the user is an autocreated temporary MediaWiki user. This is used
-      for IP masking.
-    type: boolean
-  registration_dt:
-    description: >
-      The datetime of the user account registration. Not present for anonymous
-      users or if missing in the MW database.
-    type: string
-    format: date-time
-    maxLength: 128
-  user_id:
-    description: >
-      The user ID that performed this change.  This is optional, and will not be
-      present for anonymous users.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  user_text:
-    description: >
-      The user name or text representation of the user that performed this
-      change.
-    type: string
-    minLength: 1
-examples:
-  - edit_count: 1351079888211148
-    groups:
-      - dolor
-    is_bot: false
-    is_system: false
-    is_temp: false
-    registration_dt: '2021-01-01T00:00:00.0Z'
-    user_id: 1351079888211148
-    user_text: dolor
diff --git a/jsonschema/fragment/mediawiki/state/entity/user/current.yaml b/jsonschema/fragment/mediawiki/state/entity/user/current.yaml
deleted file mode 100644
index 28c2cf4..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/user/current.yaml
+++ /dev/null
@@ -1,69 +0,0 @@
-title: fragment/mediawiki/state/entity/user
-description: >
-  Fields for MediaWiki actor or user.
-  Note that an 'user' might be a real user account
-  in MediaWiki. For anonymous users, the user_id will not be set.
-
-$id: /fragment/mediawiki/state/entity/user/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-additionalProperties: false
-
-properties:
-
-  user_id:
-    description: >
-      The user ID that performed this change.  This is optional, and
-      will not be present for anonymous users.
-    type: integer
-    minimum: 0
-
-  user_text:
-    description: >
-      The user name or text representation of the user that
-      performed this change.
-    type: string
-    minLength: 1
-
-  groups:
-    description: >
-      A list of the groups this user belongs to.  E.g. bot, sysop etc.
-      Not present for anonymous users.
-    type: array
-    items:
-      type: string
-      minLength: 1
-
-  is_bot:
-    description: >
-      True if this user is considered to be a bot at the time of this event.
-      This is checked via the $user->isBot() method, which considers both
-      user_groups and user permissions.
-    type: boolean
-
-  is_system:
-    description: >
-      True if the user is a MediaWiki 'system' user. These are users that
-      cannot 'authenticate'.  These are usually listed in ReservedUsernames.
-    type: boolean
-
-  is_temp:
-    description: >
-      True if the user is an autocreated temporary MediaWiki user.
-      This is used for IP masking.
-    type: boolean
-
-  registration_dt:
-    description: >
-      The datetime of the user account registration.
-      Not present for anonymous users or if missing in the MW database.
-    type: string
-    format: date-time
-    maxLength: 128
-
-  edit_count:
-    description: >
-      The number of edits this user has made at the time of this event.
-      Not present for anonymous users.
-    type: integer
-    minimum: 0
diff --git a/jsonschema/fragment/mediawiki/state/entity/user/latest b/jsonschema/fragment/mediawiki/state/entity/user/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/user/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/mediawiki/state/entity/user/latest.yaml b/jsonschema/fragment/mediawiki/state/entity/user/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/mediawiki/state/entity/user/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/w3c/reportingapi/report/1.0.0 b/jsonschema/fragment/w3c/reportingapi/report/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/w3c/reportingapi/report/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/w3c/reportingapi/report/1.0.0.yaml b/jsonschema/fragment/w3c/reportingapi/report/1.0.0.yaml
deleted file mode 100644
index 58bd6b5..0000000
--- a/jsonschema/fragment/w3c/reportingapi/report/1.0.0.yaml
+++ /dev/null
@@ -1,124 +0,0 @@
-title: fragment/w3c/reportingapi/report
-description: >
-  Browser-generated problem reports, as described by the W3C Reporting API.
-  https://www.w3.org/TR/reporting/ This is a fragment that includes the basic
-  fields part of every report. Each report type should use this fragment when
-  writing their own event schema with the appropriate fields for the 'body'
-  object.
-$id: /fragment/w3c/reportingapi/report/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  type:
-    description: 'The flavor of the report, like ''network-error'' or ''hpkp''.'
-    type: string
-  age:
-    description: >
-      The number of milliseconds between the report's timestamp and the time the
-      report was sent.
-    type: number
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  http:
-    type: object
-    properties:
-      client_ip:
-        description: >-
-          The http client's IP address, usually set from the X-Client-IP header,
-          the value of which is extracted from X-Forwarded-For.
-        type: string
-      has_cookies:
-        description: True if the http request has any cookies set
-        type: boolean
-      method:
-        description: 'The HTTP request method (GET, POST, etc.)'
-        type: string
-      protocol:
-        description: The protocol used for the request (HTTP or HTTPS)
-        type: string
-      request_headers:
-        description: 'Request headers sent by the client.  E.g. user-agent, etc.'
-        type: object
-        additionalProperties:
-          type: string
-      response_headers:
-        description: Response headers sent back to the client (when known).
-        type: object
-        additionalProperties:
-          type: string
-      status_code:
-        description: The HTTP status code returned for this request (when known)
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  url:
-    description: The URL that caused the report to be generated.
-    type: string
-  user_agent:
-    description: >
-      The name of the User-Agent used at the time of loading the original URL
-      which caused the report to be generated. This may differ from the
-      User-Agent used in the HTTP request that sent the report due to factors
-      like the original fetch using the "request desktop site" feature.
-    type: string
-examples:
-  - $schema: /fragment/w3c/reportingapi/report/1.0.0
-    type: dolor
-    age: -6305039478318694
-    http:
-      client_ip: dolor
-      has_cookies: false
-      method: dolor
-      protocol: dolor
-      request_headers:
-        dolorb: dolor
-      response_headers:
-        dolorb: dolor
-      status_code: -6305039478318694
-    meta:
-      domain: dolor
-      dt: '2021-01-01T00:00:00.0Z'
-      id: dolor
-      request_id: dolor
-      stream: dolor
-      uri: 'http://example.org'
-    url: dolor
-    user_agent: dolor
diff --git a/jsonschema/fragment/w3c/reportingapi/report/current.yaml b/jsonschema/fragment/w3c/reportingapi/report/current.yaml
deleted file mode 100644
index 5de6391..0000000
--- a/jsonschema/fragment/w3c/reportingapi/report/current.yaml
+++ /dev/null
@@ -1,37 +0,0 @@
-title: fragment/w3c/reportingapi/report
-description: >
-  Browser-generated problem reports, as described by the W3C Reporting API.
-  https://www.w3.org/TR/reporting/
-  This is a fragment that includes the basic fields part of every report.
-  Each report type should use this fragment when writing their own
-  event schema with the appropriate fields for the 'body' object.
-
-$id: /fragment/w3c/reportingapi/report/1.0.0
-
-$schema: https://json-schema.org/draft-07/schema#
-
-type: object
-allOf:
-  - $ref: /fragment/common/1.0.0#
-  - $ref: /fragment/http/1.2.0#
-  - $ref: /fragment/http/client_ip/1.0.0#
-  - properties:
-      age:
-        type: number
-        description: >
-          The number of milliseconds between the report's timestamp and the
-          time the report was sent.
-      type:
-        type: string
-        description: The flavor of the report, like 'network-error' or 'hpkp'.
-      url:
-        type: string
-        description: The URL that caused the report to be generated.
-      user_agent:
-        type: string
-        description: >
-          The name of the User-Agent used at the time of loading the original URL
-          which caused the report to be generated.
-          This may differ from the User-Agent used in the HTTP request that sent
-          the report due to factors like the original fetch using the
-          "request desktop site" feature.
diff --git a/jsonschema/fragment/w3c/reportingapi/report/latest b/jsonschema/fragment/w3c/reportingapi/report/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/w3c/reportingapi/report/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/fragment/w3c/reportingapi/report/latest.yaml b/jsonschema/fragment/w3c/reportingapi/report/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/fragment/w3c/reportingapi/report/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/maps/tile_change/1.0.0 b/jsonschema/maps/tile_change/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/maps/tile_change/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/maps/tile_change/1.0.0.yaml b/jsonschema/maps/tile_change/1.0.0.yaml
deleted file mode 100644
index d006db1..0000000
--- a/jsonschema/maps/tile_change/1.0.0.yaml
+++ /dev/null
@@ -1,65 +0,0 @@
-title: maps/tile_change
-description: Indicates a state change of an OpenStreetMap tile
-$id: /maps/tile_change/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-  - state
-  - tile
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  state:
-    description: The state of the map tile
-    type: string
-    enum:
-      - expired
-      - pregenerated
-  tile:
-    description: Map tile in z/x/y format
-    type: string
-    maxLength: 18
-    pattern: '^\d{1,2}\/\d{1,7}\/\d{1,7}$'
-examples:
-  - $schema: /maps/tile_change/1.0.0
-    meta:
-      dt: '2020-04-02T19:11:20.942Z'
-      stream: maps.tile_change
-    state: expired
-    tile: 0/0/0
diff --git a/jsonschema/maps/tile_change/current.yaml b/jsonschema/maps/tile_change/current.yaml
deleted file mode 100644
index 1654bcf..0000000
--- a/jsonschema/maps/tile_change/current.yaml
+++ /dev/null
@@ -1,31 +0,0 @@
-title: "maps/tile_change"
-description: "Indicates a state change of an OpenStreetMap tile"
-$id: "/maps/tile_change/1.0.0"
-$schema: "https://json-schema.org/draft-07/schema#"
-type: object
-additionalProperties: false
-
-allOf:
-  - $ref: "/fragment/common/1.1.0"
-
-properties:
-  tile:
-    type: "string"
-    description: "Map tile in z/x/y format"
-    pattern: '^\d{1,2}\/\d{1,7}\/\d{1,7}$'
-    maxLength: 18
-  state:
-    type: "string"
-    description: "The state of the map tile"
-    enum: ["expired", "pregenerated"]
-required:
-  - tile
-  - state
-
-examples:
-  - $schema: { $ref: "#/$id" }
-    meta:
-      dt: "2020-04-02T19:11:20.942Z"
-      stream: "maps.tile_change"
-    tile: "0/0/0"
-    state: "expired"
diff --git a/jsonschema/maps/tile_change/latest b/jsonschema/maps/tile_change/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/maps/tile_change/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/maps/tile_change/latest.yaml b/jsonschema/maps/tile_change/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/maps/tile_change/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/maps/tiles_change/1.0.0 b/jsonschema/maps/tiles_change/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/maps/tiles_change/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/maps/tiles_change/1.0.0.yaml b/jsonschema/maps/tiles_change/1.0.0.yaml
deleted file mode 100644
index 3542353..0000000
--- a/jsonschema/maps/tiles_change/1.0.0.yaml
+++ /dev/null
@@ -1,78 +0,0 @@
-title: maps/tiles_change
-description: Indicates a batch of state changes of OpenStreetMap tiles
-$id: /maps/tiles_change/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  changes:
-    type: array
-    items:
-      type: object
-      required:
-        - tile
-        - state
-      properties:
-        state:
-          description: The state of the map tile
-          type: string
-          enum:
-            - expired
-            - pregenerated
-        tile:
-          description: Map tile in z/x/y format
-          type: string
-          maxLength: 18
-          pattern: '^\d{1,2}\/\d{1,7}\/\d{1,7}$'
-    maxLength: 1000
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-examples:
-  - $schema: /maps/tiles_change/1.0.0
-    changes:
-      - state: expired
-        tile: 15/0/0
-      - state: expired
-        tile: 15/1/2
-      - state: expired
-        tile: 15/0/3
-    meta:
-      dt: '2020-04-02T19:11:20.942Z'
-      stream: maps.tiles_change
diff --git a/jsonschema/maps/tiles_change/current.yaml b/jsonschema/maps/tiles_change/current.yaml
deleted file mode 100644
index 894703f..0000000
--- a/jsonschema/maps/tiles_change/current.yaml
+++ /dev/null
@@ -1,43 +0,0 @@
-title: "maps/tiles_change"
-description: "Indicates a batch of state changes of OpenStreetMap tiles"
-$id: "/maps/tiles_change/1.0.0"
-$schema: "https://json-schema.org/draft-07/schema#"
-type: object
-additionalProperties: false
-
-allOf:
-  - $ref: "/fragment/common/1.1.0"
-
-properties:
-  changes:
-    type: "array"
-    items:
-      type: "object"
-      properties:
-        tile:
-          type: "string"
-          description: "Map tile in z/x/y format"
-          pattern: '^\d{1,2}\/\d{1,7}\/\d{1,7}$'
-          maxLength: 18
-        state:
-          type: "string"
-          description: "The state of the map tile"
-          enum: ["expired", "pregenerated"]
-      required:
-        - "tile"
-        - "state"
-    minLength: 1
-    maxLength: 1000
-
-examples:
-  - $schema: { $ref: "#/$id" }
-    meta:
-      dt: "2020-04-02T19:11:20.942Z"
-      stream: "maps.tiles_change"
-    changes:
-      - tile: "15/0/0"
-        state: "expired"
-      - tile: "15/1/2"
-        state: "expired"
-      - tile: "15/0/3"
-        state: "expired"
diff --git a/jsonschema/maps/tiles_change/latest b/jsonschema/maps/tiles_change/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/maps/tiles_change/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/maps/tiles_change/latest.yaml b/jsonschema/maps/tiles_change/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/maps/tiles_change/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/README.md b/jsonschema/mediawiki/README.md
deleted file mode 100644
index 6833a91..0000000
--- a/jsonschema/mediawiki/README.md
+++ /dev/null
@@ -1,35 +0,0 @@
-# Mediawiki Specific Event Schemas
-
-Mediawiki entities are represented in directories here.  Individual
-change event types are in subdirectories of each entity.  E.g.
-
-```
-page/
-  create/
-  delete/
-  restore/
-# ...
-```
-
-The schema form of each entity should be fairly similiar, with individual
-variations needed in order to represent the properties that change during an
-event.  Top level fields such as `page_id` or `user_id` should refer to
-the entity that the event represents.  This means that a `user_id`
-field on a user event represents the affected user entity, NOT the user
-that performed the change.  Mediawiki code refers to such user's as
-'performers', and we keep that convention here as well.
-
-For update (change) type events, the prior values of the entity's
-changed properties should be contained in a `prior_state` subobject, with
-field names the same as the entity's top level field names.
-
-## Versioning
-New schema versions should be backwards compatible. They should
-only add new optional fields.  They should never remove or rename fields, and
-they should never add new required fields.  This allows producer and consumer
-code to continue to work with older versions of schemas, so deployments that
-alter use of schema versions do not have to be coordinated.
-
-Ideally, each new schema version would be represented by a bump in file version
-number.  A new version of `mediawiki/revision/create/1.0.0.yaml` would go in
-`mediawiki/revision/create/1.1.0.yaml`.
diff --git a/jsonschema/mediawiki/api/request/0.0.1 b/jsonschema/mediawiki/api/request/0.0.1
deleted file mode 120000
index 2100430..0000000
--- a/jsonschema/mediawiki/api/request/0.0.1
+++ /dev/null
@@ -1 +0,0 @@
-0.0.1.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/api/request/0.0.1.yaml b/jsonschema/mediawiki/api/request/0.0.1.yaml
deleted file mode 100644
index 97544bc..0000000
--- a/jsonschema/mediawiki/api/request/0.0.1.yaml
+++ /dev/null
@@ -1,89 +0,0 @@
-title: mediawiki/api/request
-description: A single request to the MediaWiki Action API (api.php)
-$id: /mediawiki/api/request/0.0.1
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      uri:
-        type: string
-        format: uri-reference
-        maxLength: 8192
-        description: Unique URI identifying the event or entity
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      id:
-        description: Unique ID of this event
-        type: string
-      dt:
-        type: string
-        format: date-time
-        maxLength: 128
-        description: 'UTC event datetime, in ISO-8601 format'
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-  http:
-    description: Information about the HTTP request that generated this event.
-    type: object
-    properties:
-      method:
-        description: 'The HTTP request method (GET, POST, etc.)'
-        type: string
-      client_ip:
-        description: The http client's IP address
-        type: string
-      request_headers:
-        description: Request headers sent by the client.
-        type: object
-        additionalProperties:
-          type: string
-  database:
-    description: The name of the wiki database this event belongs to.
-    type: string
-    minLength: 1
-  backend_time_ms:
-    description: Elapsed milliseconds to process request as measured by MediaWiki
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  api_error_codes:
-    description: >
-      List of error codes for any errors encountered, e.g.
-      'apierror-missingparam' If this field is missing or empty, no errors were
-      encountered.
-    type: array
-    items:
-      type: string
-  params:
-    description: >
-      Request parameters. These might come from http query string, or from the
-      POST body. Sensitive params are redacted.
-    type: object
-    additionalProperties:
-      type: string
-examples:
-  - $schema: /mediawiki/api/request/0.0.1
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: example_stream
-    database: examplewiki
diff --git a/jsonschema/mediawiki/api/request/1.0.0 b/jsonschema/mediawiki/api/request/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/api/request/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/api/request/1.0.0.yaml b/jsonschema/mediawiki/api/request/1.0.0.yaml
deleted file mode 100644
index 8c60e6b..0000000
--- a/jsonschema/mediawiki/api/request/1.0.0.yaml
+++ /dev/null
@@ -1,131 +0,0 @@
-title: mediawiki/api/request
-description: A single request to the MediaWiki Action API (api.php)
-$id: /mediawiki/api/request/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  api_error_codes:
-    description: >
-      List of error codes for any errors encountered, e.g.
-      'apierror-missingparam' If this field is missing or empty, no errors were
-      encountered.
-    type: array
-    items:
-      type: string
-  backend_time_ms:
-    description: Elapsed milliseconds to process request as measured by MediaWiki
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  http:
-    description: Information about the HTTP request that generated this event.
-    type: object
-    properties:
-      client_ip:
-        description: The http client's IP address
-        type: string
-      method:
-        description: 'The HTTP request method (GET, POST, etc.)'
-        type: string
-      request_headers:
-        description: Request headers sent by the client.
-        type: object
-        additionalProperties:
-          type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  params:
-    description: >
-      Request parameters. These might come from http query string, or from the
-      POST body. Sensitive params are redacted.
-    type: object
-    additionalProperties:
-      type: string
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-examples:
-  - $schema: /mediawiki/api/request/1.0.0
-    database: examplewiki
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: example_stream
diff --git a/jsonschema/mediawiki/api/request/CHANGELOG.md b/jsonschema/mediawiki/api/request/CHANGELOG.md
deleted file mode 100644
index eda66be..0000000
--- a/jsonschema/mediawiki/api/request/CHANGELOG.md
+++ /dev/null
@@ -1,5 +0,0 @@
-### 1.0.0
- - ref /fragment/mediawiki/common to pull in database and add performer field
-
-### 0.0.1
- - Initial version
diff --git a/jsonschema/mediawiki/api/request/current.yaml b/jsonschema/mediawiki/api/request/current.yaml
deleted file mode 100644
index dd3675b..0000000
--- a/jsonschema/mediawiki/api/request/current.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
-title: mediawiki/api/request
-description: A single request to the MediaWiki Action API (api.php)
-$id: /mediawiki/api/request/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/mediawiki/common/2.0.0
-  - properties:
-      # http request/response info
-      http:
-        type: object
-        description: Information about the HTTP request that generated this event.
-        properties:
-          method:
-            type: string
-            description: The HTTP request method (GET, POST, etc.)
-          client_ip:
-            type: string
-            description: The http client's IP address
-          request_headers:
-            type: object
-            description: Request headers sent by the client.
-            additionalProperties:
-              type: string
-
-      # event specific fields
-      backend_time_ms:
-        type: integer
-        description: Elapsed milliseconds to process request as measured by MediaWiki
-
-      api_error_codes:
-        type: array
-        description: >
-          List of error codes for any errors encountered, e.g. 'apierror-missingparam'
-          If this field is missing or empty, no errors were encountered.
-        items:
-          type: string
-
-      params:
-        type: object
-        description: >
-          Request parameters. These might come from http query string,
-          or from the POST body. Sensitive params are redacted.
-        additionalProperties:
-          type: string
-examples:
-  - $schema: { $ref: "#/$id" }
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: example_stream
-    database: examplewiki
diff --git a/jsonschema/mediawiki/api/request/latest b/jsonschema/mediawiki/api/request/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/api/request/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/api/request/latest.yaml b/jsonschema/mediawiki/api/request/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/api/request/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/centralnotice/campaign/change/1.0.0 b/jsonschema/mediawiki/centralnotice/campaign/change/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/change/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/centralnotice/campaign/change/1.0.0.yaml b/jsonschema/mediawiki/centralnotice/campaign/change/1.0.0.yaml
deleted file mode 100644
index 0942d12..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/change/1.0.0.yaml
+++ /dev/null
@@ -1,179 +0,0 @@
-title: mediawiki/centralnotice/campaign/change
-description: Represents a change in the settings of a MW CentralNotice banner campaign
-$id: /mediawiki/centralnotice/campaign/change/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - archived
-  - banners
-  - campaign_name
-  - database
-  - enabled
-  - end_dt
-  - meta
-  - prior_state
-  - start_dt
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  archived:
-    description: The campaign's archived status.
-    type: boolean
-  banners:
-    description: Banners assigned to this campaign.
-    type: array
-    items:
-      type: string
-  campaign_name:
-    description: The name of the campaign whose settings were changed.
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  enabled:
-    description: The campaign's enabled status.
-    type: boolean
-  end_dt:
-    description: 'The campaign''s end time, in ISO8601 format.'
-    type: string
-    format: date-time
-    maxLength: 128
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  prior_state:
-    description: The prior state of the campaign before the change.
-    type: object
-    required:
-      - start_dt
-      - end_dt
-      - enabled
-      - archived
-      - banners
-    properties:
-      archived:
-        description: The campaign's previous archived status.
-        type: boolean
-      banners:
-        description: Banners previously assigned to this campaign.
-        type: array
-        items:
-          type: string
-      enabled:
-        description: The campaign's previous enabled status.
-        type: boolean
-      end_dt:
-        description: 'The campaign''s previous end time, in ISO8601 format.'
-        type: string
-        format: date-time
-        maxLength: 128
-      start_dt:
-        description: 'The campaign''s previous start time, in ISO8601 format.'
-        type: string
-        format: date-time
-        maxLength: 128
-  start_dt:
-    description: 'The campaign''s start time, in ISO8601 format.'
-    type: string
-    format: date-time
-    maxLength: 128
-  summary:
-    description: The summary provided for the settings change.
-    type: string
-examples:
-  - $schema: /mediawiki/centralnotice/campaign/change/1.0.0
-    archived: true
-    banners:
-      - example
-    campaign_name: example
-    database: examplewiki
-    enabled: false
-    end_dt: '2020-07-02T00:00:00Z'
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: example_stream
-    prior_state:
-      archived: false
-      banners:
-        - example
-      enabled: false
-      end_dt: '2020-07-02T00:00:00Z'
-      start_dt: '2020-07-01T00:00:00Z'
-    start_dt: '2020-07-01T00:00:00Z'
diff --git a/jsonschema/mediawiki/centralnotice/campaign/change/current.yaml b/jsonschema/mediawiki/centralnotice/campaign/change/current.yaml
deleted file mode 100644
index 403adf7..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/change/current.yaml
+++ /dev/null
@@ -1,94 +0,0 @@
-title: mediawiki/centralnotice/campaign/change
-description: Represents a change in the settings of a MW CentralNotice banner campaign
-$id: /mediawiki/centralnotice/campaign/change/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/mediawiki/common/1.0.0#
-  - properties:
-      campaign_name:
-        description: The name of the campaign whose settings were changed.
-        type: string
-      start_dt:
-        description: The campaign's start time, in ISO8601 format.
-        type: string
-        format: date-time
-        maxLength: 128
-      end_dt:
-        description: The campaign's end time, in ISO8601 format.
-        type: string
-        format: date-time
-        maxLength: 128
-      enabled:
-        description: The campaign's enabled status.
-        type: boolean
-      archived:
-        description: The campaign's archived status.
-        type: boolean
-      banners:
-        description: Banners assigned to this campaign.
-        type: array
-        items:
-          type: string
-
-      prior_state:
-        description: The prior state of the campaign before the change.
-        type: object
-        properties:
-          start_dt:
-            description: The campaign's previous start time, in ISO8601 format.
-            type: string
-            format: date-time
-            maxLength: 128
-          end_dt:
-            description: The campaign's previous end time, in ISO8601 format.
-            type: string
-            format: date-time
-            maxLength: 128
-          enabled:
-            description: The campaign's previous enabled status.
-            type: boolean
-          archived:
-            description: The campaign's previous archived status.
-            type: boolean
-          banners:
-            description: Banners previously assigned to this campaign.
-            type: array
-            items:
-              type: string
-        required:
-          - start_dt
-          - end_dt
-          - enabled
-          - archived
-          - banners
-
-      summary:
-        description: The summary provided for the settings change.
-        type: string
-    required:
-      - campaign_name
-      - start_dt
-      - end_dt
-      - enabled
-      - archived
-      - banners
-      - prior_state
-examples:
-  - $schema: { $ref: "#/$id" }
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: example_stream
-    database: examplewiki
-    campaign_name: example
-    start_dt: '2020-07-01T00:00:00Z'
-    end_dt: '2020-07-02T00:00:00Z'
-    enabled: false
-    archived: true
-    banners: [example]
-    prior_state:
-      start_dt: '2020-07-01T00:00:00Z'
-      end_dt: '2020-07-02T00:00:00Z'
-      enabled: false
-      archived: false
-      banners: [example]
diff --git a/jsonschema/mediawiki/centralnotice/campaign/change/latest b/jsonschema/mediawiki/centralnotice/campaign/change/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/change/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/centralnotice/campaign/change/latest.yaml b/jsonschema/mediawiki/centralnotice/campaign/change/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/change/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/centralnotice/campaign/create/1.0.0 b/jsonschema/mediawiki/centralnotice/campaign/create/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/create/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/centralnotice/campaign/create/1.0.0.yaml b/jsonschema/mediawiki/centralnotice/campaign/create/1.0.0.yaml
deleted file mode 100644
index 0c0ebaa..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/create/1.0.0.yaml
+++ /dev/null
@@ -1,140 +0,0 @@
-title: mediawiki/centralnotice/campaign/create
-description: Represents the creation of a MW CentralNotice banner campaign
-$id: /mediawiki/centralnotice/campaign/create/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - archived
-  - banners
-  - campaign_name
-  - database
-  - enabled
-  - end_dt
-  - meta
-  - start_dt
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  archived:
-    description: The campaign's archived status.
-    type: boolean
-  banners:
-    description: Banners assigned to this campaign.
-    type: array
-    items:
-      type: string
-  campaign_name:
-    description: The name of the campaign that was created.
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  enabled:
-    description: The campaign's enabled status.
-    type: boolean
-  end_dt:
-    description: 'The campaign''s end time, in ISO8601 format.'
-    type: string
-    format: date-time
-    maxLength: 128
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  start_dt:
-    description: 'The campaign''s start time, in ISO8601 format.'
-    type: string
-    format: date-time
-    maxLength: 128
-  summary:
-    description: The summary provided for campaign creation.
-    type: string
-examples:
-  - $schema: /mediawiki/centralnotice/campaign/create/1.0.0
-    archived: true
-    banners:
-      - example
-    campaign_name: example
-    database: examplewiki
-    enabled: false
-    end_dt: '2020-07-02T00:00:00Z'
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: example_stream
-    start_dt: '2020-07-01T00:00:00Z'
diff --git a/jsonschema/mediawiki/centralnotice/campaign/create/current.yaml b/jsonschema/mediawiki/centralnotice/campaign/create/current.yaml
deleted file mode 100644
index 31d28b1..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/create/current.yaml
+++ /dev/null
@@ -1,54 +0,0 @@
-title: mediawiki/centralnotice/campaign/create
-description: Represents the creation of a MW CentralNotice banner campaign
-$id: /mediawiki/centralnotice/campaign/create/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/mediawiki/common/1.0.0#
-  - properties:
-      campaign_name:
-        description: The name of the campaign that was created.
-        type: string
-      start_dt:
-        description: The campaign's start time, in ISO8601 format.
-        type: string
-        format: date-time
-        maxLength: 128
-      end_dt:
-        description: The campaign's end time, in ISO8601 format.
-        type: string
-        format: date-time
-        maxLength: 128
-      enabled:
-        description: The campaign's enabled status.
-        type: boolean
-      archived:
-        description: The campaign's archived status.
-        type: boolean
-      banners:
-        description: Banners assigned to this campaign.
-        type: array
-        items:
-          type: string
-      summary:
-        description: The summary provided for campaign creation.
-        type: string
-    required:
-      - campaign_name
-      - start_dt
-      - end_dt
-      - enabled
-      - archived
-      - banners
-examples:
-  - $schema: { $ref: "#/$id" }
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: example_stream
-    database: examplewiki
-    campaign_name: example
-    start_dt: '2020-07-01T00:00:00Z'
-    end_dt: '2020-07-02T00:00:00Z'
-    enabled: false
-    archived: true
-    banners: [example]
diff --git a/jsonschema/mediawiki/centralnotice/campaign/create/latest b/jsonschema/mediawiki/centralnotice/campaign/create/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/create/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/centralnotice/campaign/create/latest.yaml b/jsonschema/mediawiki/centralnotice/campaign/create/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/create/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/centralnotice/campaign/delete/1.0.0 b/jsonschema/mediawiki/centralnotice/campaign/delete/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/delete/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/centralnotice/campaign/delete/1.0.0.yaml b/jsonschema/mediawiki/centralnotice/campaign/delete/1.0.0.yaml
deleted file mode 100644
index 0df6493..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/delete/1.0.0.yaml
+++ /dev/null
@@ -1,147 +0,0 @@
-title: mediawiki/centralnotice/campaign/delete
-description: Represents the deletion of a MW CentralNotice banner campaign
-$id: /mediawiki/centralnotice/campaign/delete/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - campaign_name
-  - database
-  - meta
-  - prior_state
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  campaign_name:
-    description: The name of the campaign that was deleted.
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  prior_state:
-    description: The prior state of the campaign before this event.
-    type: object
-    required:
-      - start_dt
-      - end_dt
-      - enabled
-      - archived
-      - banners
-    properties:
-      archived:
-        description: The campaign's previous archived status.
-        type: boolean
-      banners:
-        description: Banners previously assigned to this campaign.
-        type: array
-        items:
-          type: string
-      enabled:
-        description: The campaign's previous enabled status.
-        type: boolean
-      end_dt:
-        description: 'The campaign''s previous end time, in ISO8601 format.'
-        type: string
-        format: date-time
-        maxLength: 128
-      start_dt:
-        description: 'The campaign''s previous start time, in ISO8601 format.'
-        type: string
-        format: date-time
-        maxLength: 128
-  summary:
-    description: The summary provided for campaign deletion.
-    type: string
-examples:
-  - $schema: /mediawiki/centralnotice/campaign/delete/1.0.0
-    campaign_name: example
-    database: examplewiki
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: example_stream
-    prior_state:
-      archived: true
-      banners:
-        - example
-      enabled: false
-      end_dt: '2020-07-02T00:00:00Z'
-      start_dt: '2020-07-01T00:00:00Z'
diff --git a/jsonschema/mediawiki/centralnotice/campaign/delete/current.yaml b/jsonschema/mediawiki/centralnotice/campaign/delete/current.yaml
deleted file mode 100644
index 0000d89..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/delete/current.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-title: mediawiki/centralnotice/campaign/delete
-description: Represents the deletion of a MW CentralNotice banner campaign
-$id: /mediawiki/centralnotice/campaign/delete/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/mediawiki/common/1.0.0#
-  - properties:
-      campaign_name:
-        description: The name of the campaign that was deleted.
-        type: string
-
-      prior_state:
-        description: The prior state of the campaign before this event.
-        type: object
-        properties:
-          start_dt:
-            description: The campaign's previous start time, in ISO8601 format.
-            type: string
-            format: date-time
-            maxLength: 128
-          end_dt:
-            description: The campaign's previous end time, in ISO8601 format.
-            type: string
-            format: date-time
-            maxLength: 128
-          enabled:
-            description: The campaign's previous enabled status.
-            type: boolean
-          archived:
-            description: The campaign's previous archived status.
-            type: boolean
-          banners:
-            description: Banners previously assigned to this campaign.
-            type: array
-            items:
-              type: string
-        required:
-          - start_dt
-          - end_dt
-          - enabled
-          - archived
-          - banners
-      summary:
-        description: The summary provided for campaign deletion.
-        type: string
-    required:
-      - campaign_name
-      - prior_state
-examples:
-  - $schema: { $ref: "#/$id" }
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: example_stream
-    database: examplewiki
-    campaign_name: example
-    prior_state:
-      start_dt: '2020-07-01T00:00:00Z'
-      end_dt: '2020-07-02T00:00:00Z'
-      enabled: false
-      archived: true
-      banners: [example]
diff --git a/jsonschema/mediawiki/centralnotice/campaign/delete/latest b/jsonschema/mediawiki/centralnotice/campaign/delete/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/delete/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/centralnotice/campaign/delete/latest.yaml b/jsonschema/mediawiki/centralnotice/campaign/delete/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/centralnotice/campaign/delete/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/cirrussearch/page_rerender/1.0.0 b/jsonschema/mediawiki/cirrussearch/page_rerender/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/cirrussearch/page_rerender/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/cirrussearch/page_rerender/1.0.0.yaml b/jsonschema/mediawiki/cirrussearch/page_rerender/1.0.0.yaml
deleted file mode 100644
index 1c33560..0000000
--- a/jsonschema/mediawiki/cirrussearch/page_rerender/1.0.0.yaml
+++ /dev/null
@@ -1,114 +0,0 @@
-title: mediawiki/cirrussearch/page_rerender
-description: |
-  Represents a notification instructing that a page should be re-rendered.
-$id: /mediawiki/cirrussearch/page_rerender/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - cirrussearch_cluster_group
-  - cirrussearch_index_name
-  - dt
-  - is_redirect
-  - meta
-  - namespace_id
-  - page_id
-  - page_title
-  - reason
-  - wiki_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  cirrussearch_cluster_group:
-    description: The elastic search cluster group
-    type: string
-    minLength: 1
-  cirrussearch_index_name:
-    description: The elastic search index name
-    type: string
-    minLength: 1
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  is_redirect:
-    description: True if the page is a redirect page at the time of this event.
-    type: boolean
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  namespace_id:
-    description: The id of the namespace this page belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_id:
-    description: The (database) page ID of the page.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-  reason:
-    description: The known reason that led to this event.
-    type: string
-    minLength: 1
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-examples:
-  - $schema: /mediawiki/cirrussearch/page_rerender/1.0.0
-    cirrussearch_cluster_group: my_group
-    cirrussearch_index_name: mywiki_content
-    dt: '1970-01-01T00:00:00Z'
-    is_redirect: false
-    meta:
-      domain: myserver.unittest.local
-      request_id: my_request_id
-      stream: mediawiki.cirrussearch_page_rerender
-      uid: 00000000-0000-0000-0000-000000000000
-      uri: 'https://myserver.unittest.local/wiki/MyPage'
-    namespace_id: 0
-    page_id: 123
-    page_title: MyPage
-    reason: my_reason
-    wiki_id: mywiki
diff --git a/jsonschema/mediawiki/cirrussearch/page_rerender/CHANGELOG.md b/jsonschema/mediawiki/cirrussearch/page_rerender/CHANGELOG.md
deleted file mode 100644
index 7f87693..0000000
--- a/jsonschema/mediawiki/cirrussearch/page_rerender/CHANGELOG.md
+++ /dev/null
@@ -1,2 +0,0 @@
-## 1.0.0
-- initial version
\ No newline at end of file
diff --git a/jsonschema/mediawiki/cirrussearch/page_rerender/current.yaml b/jsonschema/mediawiki/cirrussearch/page_rerender/current.yaml
deleted file mode 100644
index 58dd20d..0000000
--- a/jsonschema/mediawiki/cirrussearch/page_rerender/current.yaml
+++ /dev/null
@@ -1,49 +0,0 @@
-title: mediawiki/cirrussearch/page_rerender
-description: >
-  Represents a notification instructing that a page should be re-rendered.
-
-$id: /mediawiki/cirrussearch/page_rerender/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - wiki_id
-  - reason
-  - page_id
-  - page_title
-  - namespace_id
-  - is_redirect
-allOf:
-  - $ref: /fragment/common/2.0.0
-  - $ref: /fragment/cirrussearch/index/1.0.0
-  - $ref: /fragment/mediawiki/state/entity/page/2.0.0
-
-properties:
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-  reason:
-    type: string
-    description: The known reason that led to this event.
-    minLength: 1
-
-examples:
-   - $schema: { $ref: '#/$id' }
-     meta:
-       stream: "mediawiki.cirrussearch_page_rerender"
-       uid: "00000000-0000-0000-0000-000000000000"
-       request_id: "my_request_id"
-       domain: "myserver.unittest.local"
-       uri: "https:\/\/myserver.unittest.local\/wiki\/MyPage"
-     reason: "my_reason"
-     dt: "1970-01-01T00:00:00Z"
-     wiki_id: "mywiki"
-     cirrussearch_index_name: "mywiki_content"
-     cirrussearch_cluster_group: "my_group"
-     page_id: 123
-     page_title: "MyPage"
-     namespace_id: 0
-     is_redirect: false
diff --git a/jsonschema/mediawiki/cirrussearch/page_rerender/latest b/jsonschema/mediawiki/cirrussearch/page_rerender/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/cirrussearch/page_rerender/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/cirrussearch/page_rerender/latest.yaml b/jsonschema/mediawiki/cirrussearch/page_rerender/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/cirrussearch/page_rerender/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/cirrussearch/request/0.0.1 b/jsonschema/mediawiki/cirrussearch/request/0.0.1
deleted file mode 120000
index 2100430..0000000
--- a/jsonschema/mediawiki/cirrussearch/request/0.0.1
+++ /dev/null
@@ -1 +0,0 @@
-0.0.1.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/cirrussearch/request/0.0.1.yaml b/jsonschema/mediawiki/cirrussearch/request/0.0.1.yaml
deleted file mode 100644
index 4b6c778..0000000
--- a/jsonschema/mediawiki/cirrussearch/request/0.0.1.yaml
+++ /dev/null
@@ -1,262 +0,0 @@
-title: mediawiki/cirrussearch/request
-description: >
-  A set of requests made by CirrusSearch to ElasticSearch for a single PHP
-  execution context.
-$id: /mediawiki/cirrussearch/request/0.0.1
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  all_elasticsearch_requests_cached:
-    description: True if all Elasticsearch requests were given responses from cache
-    type: boolean
-  backend_user_tests:
-    description: List of backend tests the requests are participating in
-    type: array
-    items:
-      type: string
-      minLength: 1
-  database:
-    description: The name of the wiki database that this mediawiki instance uses.
-    type: string
-  elasticsearch_requests:
-    description: >
-      A list of requests made between Mediawiki CirrusSearch extension and
-      elasticsearch in a single execution context
-    type: array
-    items:
-      type: object
-      additionalProperties: false
-      properties:
-        cached:
-          description: True if this request's response was from cache
-          type: boolean
-        hits:
-          description: >-
-            Final set of result pages returned for this single Elasticsearch
-            request
-          type: array
-          items:
-            type: object
-            additionalProperties: false
-            properties:
-              index:
-                description: Elasticsearch index this result came from
-                type: string
-              page_id:
-                description: >-
-                  MediaWiki page id of the result. May be -1 for interwiki
-                  results
-                type: integer
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-              page_title:
-                description: MediaWiki page title of the result
-                type: string
-              profile_name:
-                description: The profile name for comp_suggest queries
-                type: string
-              score:
-                description: Score from Elasticsearch for this result
-                type: number
-                default: -1
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-        hits_offset:
-          description: The offset of the query
-          type: integer
-          maximum: 9007199254740991
-          minimum: -9007199254740991
-        hits_returned:
-          description: The number of results returned to the application
-          type: integer
-          maximum: 9007199254740991
-          minimum: -9007199254740991
-        hits_total:
-          description: The approximate total number of documents matching the query
-          type: integer
-          maximum: 9007199254740991
-          minimum: -9007199254740991
-        indices:
-          description: The list of indices the request was performed against
-          type: array
-          items:
-            type: string
-        langdetect:
-          description: >
-            - null if no lang detection attepmted, - "false" is failure to
-            detect - any other string is the language detected
-          type: string
-        limit:
-          description: The maximum number of results requested by the application
-          type: integer
-          maximum: 9007199254740991
-          minimum: -9007199254740991
-        max_score:
-          description: >
-            Max score returned by Elasticsearch. This is the best score in the
-            results before we apply rescore queries. Unfortunately we do not
-            know if it's part of the final result but it can give a rough idea
-            of the score range before we apply the rescore queries.
-          type: number
-          maximum: 9007199254740991
-          minimum: -9007199254740991
-        namespaces:
-          description: Each element is a mediawiki namespace id that was searched
-          type: array
-          items:
-            type: integer
-            maximum: 9007199254740991
-            minimum: -9007199254740991
-        query:
-          description: The actual search request
-          type: string
-        query_type:
-          description: 'The general type of query performed, such as full_text, prefix, etc.'
-          type: string
-        request_time_ms:
-          description: >
-            The number of milliseconds between passing the query to the
-            Elasticsearch client library and getting the response back in the
-            application
-          type: integer
-          maximum: 9007199254740991
-          minimum: -9007199254740991
-        search_time_ms:
-          description: >-
-            The number of milliseconds the query took, according to
-            ElasticSearch
-          type: integer
-          maximum: 9007199254740991
-          minimum: 0
-        suggestion:
-          description: The suggestion generated by Elasticsearch
-          type: string
-        suggestion_requested:
-          description: If a suggestion was requested from Elasticsearch
-          type: boolean
-          default: false
-        syntax:
-          description: Tags returned by the query parser describing properties of the query
-          type: array
-          items:
-            type: string
-  hits:
-    description: Final set of result pages returned for the CirrusSearch request
-    type: array
-    items:
-      type: object
-      additionalProperties: false
-      properties:
-        index:
-          description: ElasticSearch index this result came from
-          type: string
-        page_id:
-          description: MediaWiki page id of the result. May be -1 for interwiki results
-          type: integer
-          maximum: 9007199254740991
-          minimum: -9007199254740991
-        page_title:
-          description: MediaWiki page title of the result
-          type: string
-        profile_name:
-          description: The profile name for comp_suggest queries
-          type: string
-        score:
-          description: Score from ElasticSearch for this result
-          type: number
-          maximum: 9007199254740991
-          minimum: -9007199254740991
-  http:
-    description: Information about the HTTP request that generated this event.
-    type: object
-    properties:
-      client_ip:
-        description: The http client's IP address
-        type: string
-      has_cookies:
-        description: True if the http request has any cookies set
-        type: boolean
-      method:
-        description: 'The HTTP request method (GET, POST, etc.)'
-        type: string
-      request_headers:
-        description: Request headers sent by the client.
-        type: object
-        additionalProperties:
-          type: string
-  identity:
-    description: >
-      A hash identifying the requestor. Includes the IP address and User Agent
-      when available
-    type: string
-  mediawiki_host:
-    description: Hostname of Mediawiki server handling these CirrusSearch requests
-    type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  params:
-    description: |
-      Request parameters. Usually from the HTTP query string.
-    type: object
-    additionalProperties:
-      type: string
-  request_time_ms:
-    description: Total time of the CirrusSearch request in milliseconds
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  search_id:
-    description: >
-      UUIDv4 in base36 id of this search request. This token will be placed on
-      the URI of the generated search results page for the user, so downstream
-      analysis can join between this search request set and clicked on results
-      via webrequest referrer field.  E.g. a result page URI might be
-      /wiki/Special:Search?searchToken=asdhlajsflkafd Requests that come from
-      the Mediawiki API will have this sent via the X-Search-ID response header.
-    type: string
-  source:
-    description: 'Where the request is coming from. Typically web, api or cli'
-    type: string
-examples:
-  - $schema: /mediawiki/cirrussearch/request/0.0.1
-    database: examplewiki
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: example_stream
diff --git a/jsonschema/mediawiki/cirrussearch/request/CHANGELOG.md b/jsonschema/mediawiki/cirrussearch/request/CHANGELOG.md
deleted file mode 100644
index f66a29e..0000000
--- a/jsonschema/mediawiki/cirrussearch/request/CHANGELOG.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# 0.0.1
-- reject additional properties to invalidate events with typos
diff --git a/jsonschema/mediawiki/cirrussearch/request/current.yaml b/jsonschema/mediawiki/cirrussearch/request/current.yaml
deleted file mode 100644
index c64c437..0000000
--- a/jsonschema/mediawiki/cirrussearch/request/current.yaml
+++ /dev/null
@@ -1,225 +0,0 @@
-title: mediawiki/cirrussearch/request
-description: >
-  A set of requests made by CirrusSearch to ElasticSearch
-  for a single PHP execution context.
-$id: /mediawiki/cirrussearch/request/0.0.1
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-additionalProperties: false
-allOf:
-  - $ref: /fragment/common/1.0.0#
-  - properties:
-      # -- cirrussearchrequestset .payload
-      http:
-        type: object
-        description: Information about the HTTP request that generated this event.
-        properties:
-          method:
-            type: string
-            description: The HTTP request method (GET, POST, etc.)
-          client_ip:
-            type: string
-            description: The http client's IP address
-          request_headers:
-            type: object
-            description: Request headers sent by the client.
-            additionalProperties:
-              type: string
-          has_cookies:
-            type: boolean
-            description: True if the http request has any cookies set
-
-      # event-specific fields
-
-      # -- cirrussearchrequestset .wikiId
-      database:
-        description: The name of the wiki database that this mediawiki instance uses.
-        type: string
-
-      # -- cirrussearchrequestset .payload.host
-      mediawiki_host:
-        type: string
-        description: Hostname of Mediawiki server handling these CirrusSearch requests
-
-      params:
-        type: object
-        description: >
-          Request parameters. Usually from the HTTP query string.
-        additionalProperties:
-          type: string
-
-      # -- cirrussearchrequestset .id
-      search_id:
-        type: string
-        description: >
-          UUIDv4 in base36 id of this search request. This token will be placed
-          on the URI of the generated search results page for the user,
-          so downstream analysis can join between this search request set
-          and clicked on results via webrequest referrer field.  E.g.
-          a result page URI might be /wiki/Special:Search?searchToken=asdhlajsflkafd
-          Requests that come from the Mediawiki API will have this sent via
-          the X-Search-ID response header.
-
-      source:
-        type: string
-        description: Where the request is coming from. Typically web, api or cli
-
-      identity:
-        type: string
-        description: >
-          A hash identifying the requestor.
-          Includes the IP address and User Agent when available
-
-      backend_user_tests:
-        type: array
-        description: List of backend tests the requests are participating in
-        items:
-          type: string
-          minLength: 1
-
-       # -- cirrussearchrequestset .tookMs
-      request_time_ms:
-        type: integer
-        description: Total time of the CirrusSearch request in milliseconds
-        minimum: 0
-
-      # TODO: use a JSON $ref pointer for this when we support it
-      # -- cirrussearchrequestset .hits
-      hits:
-        type: array
-        description: Final set of result pages returned for the CirrusSearch request
-        items:
-          type: object
-          additionalProperties: false
-          properties:
-            page_title:
-              type: string
-              description: MediaWiki page title of the result
-            page_id:
-              type: integer
-              description: MediaWiki page id of the result. May be -1 for interwiki results
-            index:
-              type: string
-              description: ElasticSearch index this result came from
-            score:
-              type: number
-              description: Score from ElasticSearch for this result
-            profile_name:
-              type: string
-              description: The profile name for comp_suggest queries
-
-      all_elasticsearch_requests_cached:
-        type: boolean
-        description: True if all Elasticsearch requests were given responses from cache
-
-      # -- cirrussearchrequestset .requests
-      elasticsearch_requests:
-        type: array
-        description: >
-          A list of requests made between Mediawiki CirrusSearch extension
-          and elasticsearch in a single execution context
-        items:
-          type: object
-          additionalProperties: false
-          properties:
-            query:
-              type: string
-              description: The actual search request
-            query_type:
-              type: string
-              description: The general type of query performed, such as full_text, prefix, etc.
-            indices:
-              type: array
-              description: The list of indices the request was performed against
-              items:
-                type: string
-            namespaces:
-              type: array
-              description: Each element is a mediawiki namespace id that was searched
-              items:
-                type: integer
-            # -- cirrussearchrequestset .requests[].tookMs
-            request_time_ms:
-              type: integer
-              description: >
-                The number of milliseconds between passing the query to the Elasticsearch
-                client library and getting the response back in the application
-            # -- cirrussearchrequestset .requests[].elasticTookMs
-            search_time_ms:
-              type: integer
-              description: The number of milliseconds the query took, according to ElasticSearch
-              minimum: 0
-            limit:
-              type: integer
-              description: The maximum number of results requested by the application
-            hits_total:
-              type: integer
-              description: The approximate total number of documents matching the query
-            hits_returned:
-              type: integer
-              description: The number of results returned to the application
-            hits_offset:
-              type: integer
-              description: The offset of the query
-            suggestion:
-              type: string
-              description: The suggestion generated by Elasticsearch
-            suggestion_requested:
-              type: boolean
-              description: If a suggestion was requested from Elasticsearch
-              default: false
-            max_score:
-              type: number
-              description: >
-                Max score returned by Elasticsearch. This is the best score in the
-                results before we apply rescore queries. Unfortunately we do not know if
-                it's part of the final result but it can give a rough idea of the score
-                range before we apply the rescore queries.
-
-            # -- cirrussearchrequestset.requests[].payload was a map
-            #    that contained these keys.
-            langdetect:
-              type: string
-              description: >
-                - null if no lang detection attepmted,
-                - "false" is failure to detect
-                - any other string is the language detected
-            syntax:
-              type: array
-              description: Tags returned by the query parser describing properties of the query
-              items:
-                type: string
-            cached:
-              type: boolean
-              description: True if this request's response was from cache
-
-            # TODO: use a JSON $ref pointer for this when we support it
-            hits:
-              type: array
-              description: Final set of result pages returned for this single Elasticsearch request
-              items:
-                type: object
-                additionalProperties: false
-                properties:
-                  page_title:
-                    type: string
-                    description: MediaWiki page title of the result
-                  page_id:
-                    type: integer
-                    description: MediaWiki page id of the result. May be -1 for interwiki results
-                  index:
-                    type: string
-                    description: Elasticsearch index this result came from
-                  score:
-                    type: number
-                    description: Score from Elasticsearch for this result
-                    default: -1
-                  profile_name:
-                    type: string
-                    description: The profile name for comp_suggest queries
-examples:
-  - $schema: { $ref: "#/$id" }
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: example_stream
-    database: examplewiki
diff --git a/jsonschema/mediawiki/cirrussearch/request/latest b/jsonschema/mediawiki/cirrussearch/request/latest
deleted file mode 120000
index 2100430..0000000
--- a/jsonschema/mediawiki/cirrussearch/request/latest
+++ /dev/null
@@ -1 +0,0 @@
-0.0.1.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/cirrussearch/request/latest.yaml b/jsonschema/mediawiki/cirrussearch/request/latest.yaml
deleted file mode 120000
index 2100430..0000000
--- a/jsonschema/mediawiki/cirrussearch/request/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-0.0.1.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/client/error/1.0.0 b/jsonschema/mediawiki/client/error/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/client/error/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/client/error/1.0.0.yaml b/jsonschema/mediawiki/client/error/1.0.0.yaml
deleted file mode 100644
index 246ac3b..0000000
--- a/jsonschema/mediawiki/client/error/1.0.0.yaml
+++ /dev/null
@@ -1,115 +0,0 @@
-title: mediawiki/client/error
-description: An error generated in a client runtime.
-$id: /mediawiki/client/error/1.0.0
-$schema: 'http://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - message
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      uri:
-        type: string
-        format: uri-reference
-        maxLength: 8192
-        description: Unique URI identifying the event or entity
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      id:
-        description: Unique ID of this event
-        type: string
-      dt:
-        type: string
-        format: date-time
-        maxLength: 128
-        description: 'UTC event datetime, in ISO-8601 format'
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-  http:
-    type: object
-    properties:
-      method:
-        description: 'The HTTP request method (GET, POST, etc.)'
-        type: string
-      status_code:
-        description: The HTTP status code returned for this request (when known)
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      client_ip:
-        description: The http client's IP address
-        type: string
-      has_cookies:
-        description: True if the http request has any cookies set
-        type: boolean
-      request_headers:
-        description: 'Request headers sent by the client.  E.g. user-agent, etc.'
-        type: object
-        additionalProperties:
-          type: string
-      response_headers:
-        description: Response headers sent back to the client (when known).
-        type: object
-        additionalProperties:
-          type: string
-  error_class:
-    description: Name of constructor e.g. Error or ReferenceError.
-    type: string
-  message:
-    description: Message explaining what happened.
-    type: string
-  url:
-    description: URL of page on which the error occurred.
-    type: string
-  file_url:
-    description: URL of the file where the error occurred.
-    type: string
-  stack_trace:
-    description: Stack trace string.
-    type: string
-  tags:
-    type: object
-    maxProperties: 32
-    description: |
-      Arbitrary extra data. Typically includes:
-      - version: MediaWiki branch name
-      - wiki: wiki ID
-      - skin: skin name
-      - user_language: user language
-      - action: action (e.g. view, edit)
-      - namespace: namespace where the error occured
-      - page_title: title of page where the error occured
-      - user_groups: comma-separated list of user groups
-      - debug: truthy when ResourceLoader debug mode was enabled
-    additionalProperties:
-      type: string
-examples:
-  - $schema: /mediawiki/client/error/1.0.0
-    meta:
-      stream: mediawiki.client.error
-      dt: '2019-01-01T00:00:00Z'
-    error_class: Error
-    message: example error message
-    url: 'http://en.wikipedia.org'
-    file_url: index.js
-    tags:
-      page_title: Main_Page
diff --git a/jsonschema/mediawiki/client/error/1.1.0 b/jsonschema/mediawiki/client/error/1.1.0
deleted file mode 120000
index ac6cab8..0000000
--- a/jsonschema/mediawiki/client/error/1.1.0
+++ /dev/null
@@ -1 +0,0 @@
-1.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/client/error/1.1.0.yaml b/jsonschema/mediawiki/client/error/1.1.0.yaml
deleted file mode 100644
index 7c624f2..0000000
--- a/jsonschema/mediawiki/client/error/1.1.0.yaml
+++ /dev/null
@@ -1,115 +0,0 @@
-title: mediawiki/client/error
-description: An error generated in a client runtime.
-$id: /mediawiki/client/error/1.1.0
-$schema: 'http://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - message
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  error_class:
-    description: Name of constructor e.g. Error or ReferenceError.
-    type: string
-  file_url:
-    description: URL of the file where the error occurred.
-    type: string
-  http:
-    type: object
-    properties:
-      has_cookies:
-        description: True if the http request has any cookies set
-        type: boolean
-      method:
-        description: 'The HTTP request method (GET, POST, etc.)'
-        type: string
-      protocol:
-        description: The protocol used for the request (HTTP or HTTPS)
-        type: string
-      request_headers:
-        description: 'Request headers sent by the client.  E.g. user-agent, etc.'
-        type: object
-        additionalProperties:
-          type: string
-      response_headers:
-        description: Response headers sent back to the client (when known).
-        type: object
-        additionalProperties:
-          type: string
-      status_code:
-        description: The HTTP status code returned for this request (when known)
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-  message:
-    description: Message explaining what happened.
-    type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  stack_trace:
-    description: Stack trace string.
-    type: string
-  tags:
-    description: |
-      Arbitrary extra data. Typically includes:
-      - version: MediaWiki branch name
-      - wiki: wiki ID
-      - skin: skin name
-      - user_language: user language
-      - action: action (e.g. view, edit)
-      - namespace: namespace where the error occured
-      - page_title: title of page where the error occured
-      - user_groups: comma-separated list of user groups
-      - debug: truthy when ResourceLoader debug mode was enabled
-    type: object
-    additionalProperties:
-      type: string
-    maxProperties: 32
-  url:
-    description: URL of page on which the error occurred.
-    type: string
-examples:
-  - $schema: /mediawiki/client/error/1.1.0
-    error_class: Error
-    file_url: index.js
-    message: example error message
-    meta:
-      dt: '2019-01-01T00:00:00Z'
-      stream: mediawiki.client.error
-    tags:
-      page_title: Main_Page
-    url: 'http://en.wikipedia.org'
diff --git a/jsonschema/mediawiki/client/error/2.0.0 b/jsonschema/mediawiki/client/error/2.0.0
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/mediawiki/client/error/2.0.0
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/client/error/2.0.0.yaml b/jsonschema/mediawiki/client/error/2.0.0.yaml
deleted file mode 100644
index f956591..0000000
--- a/jsonschema/mediawiki/client/error/2.0.0.yaml
+++ /dev/null
@@ -1,115 +0,0 @@
-title: mediawiki/client/error
-description: An error generated in a client runtime.
-$id: /mediawiki/client/error/2.0.0
-$schema: 'http://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - message
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  error_class:
-    description: Name of constructor e.g. Error or ReferenceError.
-    type: string
-  error_context:
-    description: |
-      Arbitrary extra data. Typically includes:
-      - version: MediaWiki branch name
-      - wiki: wiki ID
-      - skin: skin name
-      - user_language: user language
-      - action: action (e.g. view, edit)
-      - namespace: namespace where the error occured
-      - page_title: title of page where the error occured
-      - user_groups: comma-separated list of user groups
-      - debug: truthy when ResourceLoader debug mode was enabled
-    type: object
-    additionalProperties:
-      type: string
-    maxProperties: 32
-  file_url:
-    description: URL of the file where the error occurred.
-    type: string
-  http:
-    type: object
-    properties:
-      has_cookies:
-        description: True if the http request has any cookies set
-        type: boolean
-      method:
-        description: 'The HTTP request method (GET, POST, etc.)'
-        type: string
-      protocol:
-        description: The protocol used for the request (HTTP or HTTPS)
-        type: string
-      request_headers:
-        description: 'Request headers sent by the client.  E.g. user-agent, etc.'
-        type: object
-        additionalProperties:
-          type: string
-      response_headers:
-        description: Response headers sent back to the client (when known).
-        type: object
-        additionalProperties:
-          type: string
-      status_code:
-        description: The HTTP status code returned for this request (when known)
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-  message:
-    description: Message explaining what happened.
-    type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  stack_trace:
-    description: Stack trace string.
-    type: string
-  url:
-    description: URL of page on which the error occurred.
-    type: string
-examples:
-  - $schema: /mediawiki/client/error/2.0.0
-    error_class: Error
-    error_context:
-      page_title: Main_Page
-    file_url: index.js
-    message: example error message
-    meta:
-      dt: '2019-01-01T00:00:00Z'
-      stream: mediawiki.client.error
-    url: 'http://en.wikipedia.org'
diff --git a/jsonschema/mediawiki/client/error/CHANGELOG.md b/jsonschema/mediawiki/client/error/CHANGELOG.md
deleted file mode 100644
index eba0846..0000000
--- a/jsonschema/mediawiki/client/error/CHANGELOG.md
+++ /dev/null
@@ -1,14 +0,0 @@
-### Version 1.1.0
-- Use fragment/http/1.2.0, which removes client_ip (and adds protocol).
-  In https://phabricator.wikimedia.org/T262626, we want to stop
-  collecting client_ip by default.  eventgate-wikimedia currently uses
-  the presence of the http.client_ip property in the schema to decide if
-  it should set it to the value of X-Client-IP.
-  This is technically a backwards incompatible change, but mediawiki/client/error
-  data currently only is ingested into LogStash, which does not care.
-### Version 2.0.0
-- Rename tags field to error_context. "tags" is a reserved word in our
-  Logstash setup which made sending tag data impossible.
-  Normally backwards-incompatible schema changes can be problematic, but
-  because this schema only writes to Logstash, and because it wasn't possible
-  to send data in the tag field, it should be fine in this case.
diff --git a/jsonschema/mediawiki/client/error/current.yaml b/jsonschema/mediawiki/client/error/current.yaml
deleted file mode 100644
index d0670ee..0000000
--- a/jsonschema/mediawiki/client/error/current.yaml
+++ /dev/null
@@ -1,58 +0,0 @@
-title: mediawiki/client/error
-description: An error generated in a client runtime.
-$id: /mediawiki/client/error/2.0.0
-$schema: http://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/common/1.1.0#
-  - $ref: /fragment/http/1.2.0#
-  - properties:
-      error_class:
-        type: string
-        description: Name of constructor e.g. Error or ReferenceError.
-      message:
-        type: string
-        description: Message explaining what happened.
-      url:
-        type: string
-        description: URL of page on which the error occurred.
-      file_url:
-        type: string
-        description: URL of the file where the error occurred.
-      stack_trace:
-        type: string
-        description: Stack trace string.
-      error_context:
-        # Note: we need a reasonably unique name for this field, and
-        # one that implies that it's an object. The data is sent to
-        # Logstash, which has no schemas and handles field type
-        # conflicts poorly.
-        type: object
-        maxProperties: 32
-        additionalProperties:
-          type: string
-        description: |
-          Arbitrary extra data. Typically includes:
-          - version: MediaWiki branch name
-          - wiki: wiki ID
-          - skin: skin name
-          - user_language: user language
-          - action: action (e.g. view, edit)
-          - namespace: namespace where the error occured
-          - page_title: title of page where the error occured
-          - user_groups: comma-separated list of user groups
-          - debug: truthy when ResourceLoader debug mode was enabled
-    required:
-      - message
-examples:
-  - $schema: { $ref: "#/$id" }
-    meta:
-      stream: mediawiki.client.error
-      dt: '2019-01-01T00:00:00Z'
-    error_class: Error
-    message: example error message
-    url: http://en.wikipedia.org
-    file_url: index.js
-    error_context:
-      page_title: Main_Page
-
diff --git a/jsonschema/mediawiki/client/error/latest b/jsonschema/mediawiki/client/error/latest
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/mediawiki/client/error/latest
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/client/error/latest.yaml b/jsonschema/mediawiki/client/error/latest.yaml
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/mediawiki/client/error/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/job/1.0.0 b/jsonschema/mediawiki/job/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/job/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/job/1.0.0.yaml b/jsonschema/mediawiki/job/1.0.0.yaml
deleted file mode 100644
index 39e1d22..0000000
--- a/jsonschema/mediawiki/job/1.0.0.yaml
+++ /dev/null
@@ -1,98 +0,0 @@
-title: mediawiki/job
-description: Represents a job in Mediawiki JobQueue.
-$id: /mediawiki/job/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - type
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  type:
-    description: type of the job
-    type: string
-  database:
-    description: The name of the wiki database this event belongs to.
-    type: string
-    minLength: 1
-  delay_until:
-    description: don't execute the job until a particular time
-    type: string
-    format: date-time
-    maxLength: 128
-  mediawiki_signature:
-    description: The cryptograthic signature of the event baed on MW SecretKey
-    type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_namespace:
-    description: the namespace of the page that the job was triggered for
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: the title of the page that the job was triggered for
-    type: string
-    minLength: 1
-  params:
-    description: various parameters speific to a particular job
-    type: object
-  root_event:
-    description: Unique identifier of the root event that triggered this event creation
-    type: object
-    required:
-      - dt
-      - signature
-    properties:
-      dt:
-        description: 'the timestamp of the root event, in ISO8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      signature:
-        description: the unique signature of root event
-        type: string
-  sha1:
-    description: unique ID of the job derived from the deduplication info
-    type: string
-examples:
-  - $schema: /mediawiki/job/1.0.0
-    type: example_job
-    database: examplewiki
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: mediawiki.job.example
diff --git a/jsonschema/mediawiki/job/CHANGELOG.md b/jsonschema/mediawiki/job/CHANGELOG.md
deleted file mode 100644
index c97fa96..0000000
--- a/jsonschema/mediawiki/job/CHANGELOG.md
+++ /dev/null
@@ -1,8 +0,0 @@
-### Version 1.0.0
- - Updated to draft-07 new schema conventions.
-
- ### Version 3
- - Made `page_title` and `page_namespace` properties not required.
-
- ### Version 2
- - Added `minLength: 1` for required string properties.
diff --git a/jsonschema/mediawiki/job/current.yaml b/jsonschema/mediawiki/job/current.yaml
deleted file mode 100644
index e3415f0..0000000
--- a/jsonschema/mediawiki/job/current.yaml
+++ /dev/null
@@ -1,72 +0,0 @@
-title: mediawiki/job
-description: Represents a job in Mediawiki JobQueue.
-$id: /mediawiki/job/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/common/1.0.0#
-  - properties:
-      database:
-        description: The name of the wiki database this event belongs to.
-        type: string
-        minLength: 1
-
-      type:
-        description: type of the job
-        type: string
-
-      page_namespace:
-        description: the namespace of the page that the job was triggered for
-        type: integer
-
-      page_title:
-        description: the title of the page that the job was triggered for
-        type: string
-        minLength: 1
-
-      delay_until:
-        description: don't execute the job until a particular time
-        type: string
-        format: date-time
-        maxLength: 128
-
-      sha1:
-        description: unique ID of the job derived from the deduplication info
-        type: string
-
-      # Deduplication information
-      root_event:
-        type: object
-        description: Unique identifier of the root event that triggered this event creation
-        properties:
-          dt:
-            description: the timestamp of the root event, in ISO8601 format
-            type: string
-            format: date-time
-            maxLength: 128
-          signature:
-            type: string
-            description: the unique signature of root event
-        required:
-          - dt
-          - signature
-
-      mediawiki_signature:
-        description: The cryptograthic signature of the event baed on MW SecretKey
-        type: string
-
-      params:
-        description: various parameters speific to a particular job
-        type: object
-
-required:
-  - database
-  - type
-  # TODO: add mediawiki_signature to required once producing it is deployed
-examples:
-  - $schema: { $ref: "#/$id" }
-    meta:
-      stream: mediawiki.job.example
-      dt: '2020-07-01T00:00:00Z'
-    database: examplewiki
-    type: example_job
diff --git a/jsonschema/mediawiki/job/latest b/jsonschema/mediawiki/job/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/job/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/job/latest.yaml b/jsonschema/mediawiki/job/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/job/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/change/1.0.0 b/jsonschema/mediawiki/page/change/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/change/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/change/1.0.0.yaml b/jsonschema/mediawiki/page/change/1.0.0.yaml
deleted file mode 100644
index b3ddd85..0000000
--- a/jsonschema/mediawiki/page/change/1.0.0.yaml
+++ /dev/null
@@ -1,772 +0,0 @@
-title: mediawiki/page/change
-description: >
-  Represents a MediaWiki page state change in a changelog. This event models all
-  state changes to MediaWiki pages. It supersedes the other page and revision
-  based event models. See: https://phabricator.wikimedia.org/T308017
-$id: /mediawiki/page/change/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - changelog_kind
-  - dt
-  - meta
-  - page
-  - page_change_kind
-  - performer
-  - revision
-  - wiki_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  changelog_kind:
-    description: >
-      The kind of this event in a changelog. This is used to map the event to an
-      action in a data store.
-    type: string
-    enum:
-      - insert
-      - update
-      - delete
-  comment:
-    description: >
-      The comment left by the user that performed this change. Same as
-      revision.comment on edits.
-    type: string
-  created_redirect_page:
-    title: fragment/mediawiki/state/entity/page
-    description: >
-      Page entity that was created at the old title during a page move. This is
-      only set for page move events. Note that the created_redirect_page will
-      also have its own associated page create event.
-    $id: /fragment/mediawiki/state/entity/page/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      revision_count:
-        description: >
-          The number of revisions of this page at the time of this event. During
-          a delete, this number of revisions will be archived. This field is
-          likely only set for page delete events, as getting this information on
-          all events is expensive.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-        revision_count: 1351079888211148
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page:
-    title: fragment/mediawiki/state/entity/page
-    description: Fields for MediaWiki page entity.
-    $id: /fragment/mediawiki/state/entity/page/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      revision_count:
-        description: >
-          The number of revisions of this page at the time of this event. During
-          a delete, this number of revisions will be archived. This field is
-          likely only set for page delete events, as getting this information on
-          all events is expensive.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-        revision_count: 1351079888211148
-  page_change_kind:
-    description: |
-      The origin kind of the change to this page as viewed by MediaWiki.
-    type: string
-    enum:
-      - create
-      - undelete
-      - edit
-      - move
-      - delete
-      - visibility_change
-  performer:
-    title: fragment/mediawiki/state/entity/user
-    description: >
-      Represents the MediaWiki actor that made this change. If this change is an
-      edit, this will be the same as revision.editor.
-    $id: /fragment/mediawiki/state/entity/user/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    properties:
-      edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      groups:
-        description: >
-          A list of the groups this user belongs to.  E.g. bot, sysop etc. Not
-          present for anonymous users.
-        type: array
-        items:
-          type: string
-          minLength: 1
-      is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      is_system:
-        description: >
-          True if the user is a MediaWiki 'system' user. These are users that
-          cannot 'authenticate'.  These are usually listed in ReservedUsernames.
-        type: boolean
-      is_temp:
-        description: >
-          True if the user is an autocreated temporary MediaWiki user. This is
-          used for IP masking.
-        type: boolean
-      registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_id:
-        description: >
-          The user ID that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_text:
-        description: >
-          The user name or text representation of the user that performed this
-          change.
-        type: string
-        minLength: 1
-    examples:
-      - edit_count: 1351079888211148
-        groups:
-          - dolor
-        is_bot: false
-        is_system: false
-        is_temp: false
-        registration_dt: '2021-01-01T00:00:00.0Z'
-        user_id: 1351079888211148
-        user_text: dolor
-  prior_state:
-    description: >
-      Prior state of this page before this event. Fields are only present if
-      their values have changed.
-    type: object
-    properties:
-      page:
-        title: fragment/mediawiki/state/entity/page
-        description: Fields for MediaWiki page entity.
-        $id: /fragment/mediawiki/state/entity/page/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          is_redirect:
-            description: True if the page is a redirect page at the time of this event.
-            type: boolean
-          namespace_id:
-            description: The id of the namespace this page belongs to.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_id:
-            description: The (database) page ID of the page.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_title:
-            description: The normalized title of the page.
-            type: string
-            minLength: 1
-          revision_count:
-            description: >
-              The number of revisions of this page at the time of this event.
-              During a delete, this number of revisions will be archived. This
-              field is likely only set for page delete events, as getting this
-              information on all events is expensive.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - is_redirect: false
-            namespace_id: 1351079888211148
-            page_id: 1351079888211148
-            page_title: dolor
-            revision_count: 1351079888211148
-      revision:
-        title: fragment/mediawiki/state/entity/revision
-        description: Fields for MediaWiki revision entity.
-        $id: /fragment/mediawiki/state/entity/revision/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          comment:
-            description: The comment left by the editor when this revision was made.
-            type: string
-          content_slots:
-            title: fragment/mediawiki/state/entity/revision_slots
-            description: >
-              Map type representing MediaWiki's revision content slots. This map
-              is keyed by the slot role name, e.g. 'main'.
-            $id: /fragment/mediawiki/state/entity/revision_slots/1.0.0
-            $schema: 'https://json-schema.org/draft-07/schema#'
-            type: object
-            additionalProperties:
-              title: fragment/mediawiki/state/entity/content
-              description: |
-                Fields for representing MediaWiki page revision content.
-              $id: /fragment/mediawiki/state/entity/content/1.0.0
-              $schema: 'https://json-schema.org/draft-07/schema#'
-              type: object
-              additionalProperties: false
-              properties:
-                content_body:
-                  description: >
-                    Content body. NOTE: This field is not required, and is often
-                    not set in streams as it can make events very large. It is
-                    included here for events that do include the content body.
-                  type: string
-                content_format:
-                  description: >-
-                    The 'content type' of the content.  E.g. wikitext/html. This
-                    is similiar to a MIME type.
-                  type: string
-                content_model:
-                  description: >-
-                    MediaWiki's content model of this content. E.g. wikitext,
-                    json, etc.
-                  type: string
-                content_sha1:
-                  description: sha1 sum of the content body.
-                  type: string
-                content_size:
-                  description: Byte size of the content body.
-                  type: integer
-                  maximum: 9007199254740991
-                  minimum: 0
-                origin_rev_id:
-                  description: Revision in which this slot was originally created
-                  type: integer
-                  maximum: 9007199254740991
-                  minimum: 0
-                slot_role:
-                  description: Slot role name.
-                  type: string
-              examples:
-                - content_body: dolor
-                  content_format: dolor
-                  content_model: dolor
-                  content_sha1: dolor
-                  content_size: 1351079888211148
-                  origin_rev_id: 1351079888211148
-            examples:
-              - dolorb:
-                  content_body: dolor
-                  content_format: dolor
-                  content_model: dolor
-                  content_sha1: dolor
-                  content_size: 1351079888211148
-                  origin_rev_id: 1351079888211148
-                  slot_role: dolor
-          editor:
-            title: fragment/mediawiki/state/entity/user
-            description: Represents the MediaWiki user that made this edit.
-            $id: /fragment/mediawiki/state/entity/user/1.0.0
-            $schema: 'https://json-schema.org/draft-07/schema#'
-            type: object
-            additionalProperties: false
-            properties:
-              edit_count:
-                description: >
-                  The number of edits this user has made at the time of this
-                  event. Not present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              groups:
-                description: >
-                  A list of the groups this user belongs to.  E.g. bot, sysop
-                  etc. Not present for anonymous users.
-                type: array
-                items:
-                  type: string
-                  minLength: 1
-              is_bot:
-                description: >
-                  True if this user is considered to be a bot at the time of
-                  this event. This is checked via the $user->isBot() method,
-                  which considers both user_groups and user permissions.
-                type: boolean
-              is_system:
-                description: >
-                  True if the user is a MediaWiki 'system' user. These are users
-                  that cannot 'authenticate'.  These are usually listed in
-                  ReservedUsernames.
-                type: boolean
-              is_temp:
-                description: >
-                  True if the user is an autocreated temporary MediaWiki user.
-                  This is used for IP masking.
-                type: boolean
-              registration_dt:
-                description: >
-                  The datetime of the user account registration. Not present for
-                  anonymous users or if missing in the MW database.
-                type: string
-                format: date-time
-                maxLength: 128
-              user_id:
-                description: >
-                  The user ID that performed this change.  This is optional, and
-                  will not be present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              user_text:
-                description: >
-                  The user name or text representation of the user that
-                  performed this change.
-                type: string
-                minLength: 1
-            examples:
-              - edit_count: 1351079888211148
-                groups:
-                  - dolor
-                is_bot: false
-                is_system: false
-                is_temp: false
-                registration_dt: '2021-01-01T00:00:00.0Z'
-                user_id: 1351079888211148
-                user_text: dolor
-          is_comment_visible:
-            description: >
-              Whether the comment of the revision is visible. See
-              RevisionRecord->DELETED_COMMENT.
-            type: boolean
-          is_content_visible:
-            description: >
-              Whether the revision's content body is visible. If this is false,
-              then content should be redacted. See RevisionRecord->DELETED_TEXT
-            type: boolean
-          is_editor_visible:
-            description: >
-              Whether the revision's editor information is visible. Affects
-              editor field. See RevisionRecord->DELETED_USER
-            type: boolean
-          is_minor_edit:
-            description: True if the editor marked this revision as a minor edit.
-            type: boolean
-          rev_dt:
-            description: >
-              Time this revision was created. This is rev_timestamp in the
-              MediaWiki database.
-            type: string
-            format: date-time
-            maxLength: 128
-          rev_id:
-            description: The (database) revision ID.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 1
-          rev_parent_id:
-            description: This revision's parent rev_id.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          rev_sha1:
-            description: |
-              sha1 sum considering all the content slots for this revision.
-            type: string
-          rev_size:
-            description: >
-              Byte size 'sum' of all the content slots for this revision. This
-              'size' is approximate, but may not be exact, depending on the kind
-              of data that is stored in the content slots.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - comment: dolor
-            editor:
-              edit_count: 1351079888211148
-              groups:
-                - dolor
-              is_bot: false
-              is_system: false
-              is_temp: false
-              registration_dt: '2021-01-01T00:00:00.0Z'
-              user_id: 1351079888211148
-              user_text: dolor
-            is_comment_visible: false
-            is_content_visible: false
-            is_editor_visible: false
-            is_minor_edit: false
-            rev_dt: '2021-01-01T00:00:00.0Z'
-            rev_id: 1351079888211149
-            rev_parent_id: 1351079888211148
-            rev_sha1: dolor
-            rev_size: 1351079888211148
-  revision:
-    title: fragment/mediawiki/state/entity/revision
-    description: Fields for MediaWiki revision entity.
-    $id: /fragment/mediawiki/state/entity/revision/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - rev_id
-      - rev_dt
-    properties:
-      comment:
-        description: The comment left by the editor when this revision was made.
-        type: string
-      content_slots:
-        title: fragment/mediawiki/state/entity/revision_slots
-        description: >
-          Map type representing MediaWiki's revision content slots. This map is
-          keyed by the slot role name, e.g. 'main'.
-        $id: /fragment/mediawiki/state/entity/revision_slots/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties:
-          title: fragment/mediawiki/state/entity/content
-          description: |
-            Fields for representing MediaWiki page revision content.
-          $id: /fragment/mediawiki/state/entity/content/1.0.0
-          $schema: 'https://json-schema.org/draft-07/schema#'
-          type: object
-          additionalProperties: false
-          properties:
-            content_body:
-              description: >
-                Content body. NOTE: This field is not required, and is often not
-                set in streams as it can make events very large. It is included
-                here for events that do include the content body.
-              type: string
-            content_format:
-              description: >-
-                The 'content type' of the content.  E.g. wikitext/html. This is
-                similiar to a MIME type.
-              type: string
-            content_model:
-              description: >-
-                MediaWiki's content model of this content. E.g. wikitext, json,
-                etc.
-              type: string
-            content_sha1:
-              description: sha1 sum of the content body.
-              type: string
-            content_size:
-              description: Byte size of the content body.
-              type: integer
-              maximum: 9007199254740991
-              minimum: 0
-            origin_rev_id:
-              description: Revision in which this slot was originally created
-              type: integer
-              maximum: 9007199254740991
-              minimum: 0
-            slot_role:
-              description: Slot role name.
-              type: string
-          examples:
-            - content_body: dolor
-              content_format: dolor
-              content_model: dolor
-              content_sha1: dolor
-              content_size: 1351079888211148
-              origin_rev_id: 1351079888211148
-        examples:
-          - dolorb:
-              content_body: dolor
-              content_format: dolor
-              content_model: dolor
-              content_sha1: dolor
-              content_size: 1351079888211148
-              origin_rev_id: 1351079888211148
-              slot_role: dolor
-      editor:
-        title: fragment/mediawiki/state/entity/user
-        description: Represents the MediaWiki user that made this edit.
-        $id: /fragment/mediawiki/state/entity/user/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          edit_count:
-            description: >
-              The number of edits this user has made at the time of this event.
-              Not present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          groups:
-            description: >
-              A list of the groups this user belongs to.  E.g. bot, sysop etc.
-              Not present for anonymous users.
-            type: array
-            items:
-              type: string
-              minLength: 1
-          is_bot:
-            description: >
-              True if this user is considered to be a bot at the time of this
-              event. This is checked via the $user->isBot() method, which
-              considers both user_groups and user permissions.
-            type: boolean
-          is_system:
-            description: >
-              True if the user is a MediaWiki 'system' user. These are users
-              that cannot 'authenticate'.  These are usually listed in
-              ReservedUsernames.
-            type: boolean
-          is_temp:
-            description: >
-              True if the user is an autocreated temporary MediaWiki user. This
-              is used for IP masking.
-            type: boolean
-          registration_dt:
-            description: >
-              The datetime of the user account registration. Not present for
-              anonymous users or if missing in the MW database.
-            type: string
-            format: date-time
-            maxLength: 128
-          user_id:
-            description: >
-              The user ID that performed this change.  This is optional, and
-              will not be present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          user_text:
-            description: >
-              The user name or text representation of the user that performed
-              this change.
-            type: string
-            minLength: 1
-        examples:
-          - edit_count: 1351079888211148
-            groups:
-              - dolor
-            is_bot: false
-            is_system: false
-            is_temp: false
-            registration_dt: '2021-01-01T00:00:00.0Z'
-            user_id: 1351079888211148
-            user_text: dolor
-      is_comment_visible:
-        description: >
-          Whether the comment of the revision is visible. See
-          RevisionRecord->DELETED_COMMENT.
-        type: boolean
-      is_content_visible:
-        description: >
-          Whether the revision's content body is visible. If this is false, then
-          content should be redacted. See RevisionRecord->DELETED_TEXT
-        type: boolean
-      is_editor_visible:
-        description: >
-          Whether the revision's editor information is visible. Affects editor
-          field. See RevisionRecord->DELETED_USER
-        type: boolean
-      is_minor_edit:
-        description: True if the editor marked this revision as a minor edit.
-        type: boolean
-      rev_dt:
-        description: >
-          Time this revision was created. This is rev_timestamp in the MediaWiki
-          database.
-        type: string
-        format: date-time
-        maxLength: 128
-      rev_id:
-        description: The (database) revision ID.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 1
-      rev_parent_id:
-        description: This revision's parent rev_id.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      rev_sha1:
-        description: |
-          sha1 sum considering all the content slots for this revision.
-        type: string
-      rev_size:
-        description: >
-          Byte size 'sum' of all the content slots for this revision. This
-          'size' is approximate, but may not be exact, depending on the kind of
-          data that is stored in the content slots.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - comment: dolor
-        editor:
-          edit_count: 1351079888211148
-          groups:
-            - dolor
-          is_bot: false
-          is_system: false
-          is_temp: false
-          registration_dt: '2021-01-01T00:00:00.0Z'
-          user_id: 1351079888211148
-          user_text: dolor
-        is_comment_visible: false
-        is_content_visible: false
-        is_editor_visible: false
-        is_minor_edit: false
-        rev_dt: '2021-01-01T00:00:00.0Z'
-        rev_id: 1351079888211149
-        rev_parent_id: 1351079888211148
-        rev_sha1: dolor
-        rev_size: 1351079888211148
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-examples:
-  - $schema: /mediawiki/page/change/1.0.0
-    changelog_kind: update
-    comment: changed a thing
-    dt: '2021-01-01T00:00:00.0Z'
-    meta:
-      domain: examplewiki
-      dt: '2021-01-01T00:00:00.0Z'
-      stream: mediawiki.page_change
-    page:
-      is_redirect: false
-      namespace_id: 1
-      page_id: 1
-      page_title: example
-      revision_count: 1
-    page_change_kind: edit
-    performer:
-      user_id: 123
-      user_text: yoohoo
-    revision:
-      comment: changed a thing
-      content_slots:
-        main:
-          content_format: text/x-wiki
-          content_model: wikitext
-          content_sha1: 16619839a55cfb5c61bcf520bf9734e0c67f98cc
-          content_size: 100
-          origin_rev_id: 2
-          slot_role: main
-      editor:
-        user_id: 123
-        user_text: example
-      is_comment_visible: true
-      is_content_visible: true
-      is_editor_visible: true
-      is_minor_edit: false
-      rev_dt: '2021-01-01T00:00:00.0Z'
-      rev_id: 2
-      rev_parent_id: 1
-      rev_sha1: 16619839a55cfb5c61bcf520bf9734e0c67f98cc
-      rev_size: 100
-    wiki_id: example
diff --git a/jsonschema/mediawiki/page/change/1.1.0 b/jsonschema/mediawiki/page/change/1.1.0
deleted file mode 120000
index ac6cab8..0000000
--- a/jsonschema/mediawiki/page/change/1.1.0
+++ /dev/null
@@ -1 +0,0 @@
-1.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/change/1.1.0.yaml b/jsonschema/mediawiki/page/change/1.1.0.yaml
deleted file mode 100644
index bf61893..0000000
--- a/jsonschema/mediawiki/page/change/1.1.0.yaml
+++ /dev/null
@@ -1,820 +0,0 @@
-title: mediawiki/page/change
-description: >
-  Represents a MediaWiki page state change in a changelog. This event models all
-  state changes to MediaWiki pages. It supersedes the other page and revision
-  based event models. See: https://phabricator.wikimedia.org/T308017
-$id: /mediawiki/page/change/1.1.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - changelog_kind
-  - dt
-  - meta
-  - page
-  - page_change_kind
-  - performer
-  - revision
-  - wiki_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  changelog_kind:
-    description: >
-      The kind of this event in a changelog. This is used to map the event to an
-      action in a data store.
-    type: string
-    enum:
-      - insert
-      - update
-      - delete
-  comment:
-    description: >
-      The comment left by the user that performed this change. Same as
-      revision.comment on edits.
-    type: string
-  created_redirect_page:
-    title: fragment/mediawiki/state/entity/page
-    description: >
-      Page entity that was created at the old title during a page move. This is
-      only set for page move events. Note that the created_redirect_page will
-      also have its own associated page create event.
-    $id: /fragment/mediawiki/state/entity/page/2.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      revision_count:
-        description: >
-          NOTE: revision_count is never set for created_redirect_page. It is
-          present here for backwards compatibility only.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page:
-    title: fragment/mediawiki/state/entity/page
-    description: Fields for MediaWiki page entity.
-    $id: /fragment/mediawiki/state/entity/page/2.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      redirect_page_link:
-        title: fragment/mediawiki/state/entity/page_link
-        description: >
-          If this page is currently a redirect, then this field contains
-          information about the target page the redirect links to.
-        $id: /fragment/mediawiki/state/entity/page_link/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          interwiki_prefix:
-            description: >
-              The interwiki prefix (iw_prefix) of this link. The presence of
-              this prefix implies a target outside the local wiki. See
-              https://meta.wikimedia.org/wiki/Help:Interwiki_linking
-            type: string
-          is_redirect:
-            description: True if the page is a redirect page at the time of this event.
-            type: boolean
-          namespace_id:
-            description: The id of the namespace this page belongs to.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_id:
-            description: The (database) page ID of the page.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_title:
-            description: The normalized title of the page.
-            type: string
-            minLength: 1
-        examples:
-          - interwiki_prefix: dolor
-            is_redirect: false
-            namespace_id: 1351079888211148
-            page_id: 1351079888211148
-            page_title: dolor
-      revision_count:
-        description: >
-          The number of revisions of this page at the time of this event. During
-          a delete, this number of revisions will be archived. This field is
-          likely only set for page delete events, as getting this information on
-          all events is expensive.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-  page_change_kind:
-    description: |
-      The origin kind of the change to this page as viewed by MediaWiki.
-    type: string
-    enum:
-      - create
-      - undelete
-      - edit
-      - move
-      - delete
-      - visibility_change
-  performer:
-    title: fragment/mediawiki/state/entity/user
-    description: >
-      Represents the MediaWiki actor that made this change. If this change is an
-      edit, this will be the same as revision.editor.
-    $id: /fragment/mediawiki/state/entity/user/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    properties:
-      edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      groups:
-        description: >
-          A list of the groups this user belongs to.  E.g. bot, sysop etc. Not
-          present for anonymous users.
-        type: array
-        items:
-          type: string
-          minLength: 1
-      is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      is_system:
-        description: >
-          True if the user is a MediaWiki 'system' user. These are users that
-          cannot 'authenticate'.  These are usually listed in ReservedUsernames.
-        type: boolean
-      is_temp:
-        description: >
-          True if the user is an autocreated temporary MediaWiki user. This is
-          used for IP masking.
-        type: boolean
-      registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_id:
-        description: >
-          The user ID that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_text:
-        description: >
-          The user name or text representation of the user that performed this
-          change.
-        type: string
-        minLength: 1
-    examples:
-      - edit_count: 1351079888211148
-        groups:
-          - dolor
-        is_bot: false
-        is_system: false
-        is_temp: false
-        registration_dt: '2021-01-01T00:00:00.0Z'
-        user_id: 1351079888211148
-        user_text: dolor
-  prior_state:
-    description: >
-      Prior state of this page before this event. Fields are only present if
-      their values have changed.
-    type: object
-    properties:
-      page:
-        title: fragment/mediawiki/state/entity/page
-        description: Fields for MediaWiki page entity.
-        $id: /fragment/mediawiki/state/entity/page/2.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          is_redirect:
-            description: True if the page is a redirect page at the time of this event.
-            type: boolean
-          namespace_id:
-            description: The id of the namespace this page belongs to.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_id:
-            description: The (database) page ID of the page.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_title:
-            description: The normalized title of the page.
-            type: string
-            minLength: 1
-          revision_count:
-            description: >
-              NOTE: prior_state.page.revision_count is unlikely to be set, as
-              getting the # of revisions previous to this change is difficult.
-              This field is present here for backwards compatibiliy.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - is_redirect: false
-            namespace_id: 1351079888211148
-            page_id: 1351079888211148
-            page_title: dolor
-      revision:
-        title: fragment/mediawiki/state/entity/revision
-        description: Fields for MediaWiki revision entity.
-        $id: /fragment/mediawiki/state/entity/revision/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          comment:
-            description: The comment left by the editor when this revision was made.
-            type: string
-          content_slots:
-            title: fragment/mediawiki/state/entity/revision_slots
-            description: >
-              Map type representing MediaWiki's revision content slots. This map
-              is keyed by the slot role name, e.g. 'main'.
-            $id: /fragment/mediawiki/state/entity/revision_slots/1.0.0
-            $schema: 'https://json-schema.org/draft-07/schema#'
-            type: object
-            additionalProperties:
-              title: fragment/mediawiki/state/entity/content
-              description: |
-                Fields for representing MediaWiki page revision content.
-              $id: /fragment/mediawiki/state/entity/content/1.0.0
-              $schema: 'https://json-schema.org/draft-07/schema#'
-              type: object
-              additionalProperties: false
-              properties:
-                content_body:
-                  description: >
-                    Content body. NOTE: This field is not required, and is often
-                    not set in streams as it can make events very large. It is
-                    included here for events that do include the content body.
-                  type: string
-                content_format:
-                  description: >-
-                    The 'content type' of the content.  E.g. wikitext/html. This
-                    is similiar to a MIME type.
-                  type: string
-                content_model:
-                  description: >-
-                    MediaWiki's content model of this content. E.g. wikitext,
-                    json, etc.
-                  type: string
-                content_sha1:
-                  description: sha1 sum of the content body.
-                  type: string
-                content_size:
-                  description: Byte size of the content body.
-                  type: integer
-                  maximum: 9007199254740991
-                  minimum: 0
-                origin_rev_id:
-                  description: Revision in which this slot was originally created
-                  type: integer
-                  maximum: 9007199254740991
-                  minimum: 0
-                slot_role:
-                  description: Slot role name.
-                  type: string
-              examples:
-                - content_body: dolor
-                  content_format: dolor
-                  content_model: dolor
-                  content_sha1: dolor
-                  content_size: 1351079888211148
-                  origin_rev_id: 1351079888211148
-            examples:
-              - dolorb:
-                  content_body: dolor
-                  content_format: dolor
-                  content_model: dolor
-                  content_sha1: dolor
-                  content_size: 1351079888211148
-                  origin_rev_id: 1351079888211148
-                  slot_role: dolor
-          editor:
-            title: fragment/mediawiki/state/entity/user
-            description: Represents the MediaWiki user that made this edit.
-            $id: /fragment/mediawiki/state/entity/user/1.0.0
-            $schema: 'https://json-schema.org/draft-07/schema#'
-            type: object
-            additionalProperties: false
-            properties:
-              edit_count:
-                description: >
-                  The number of edits this user has made at the time of this
-                  event. Not present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              groups:
-                description: >
-                  A list of the groups this user belongs to.  E.g. bot, sysop
-                  etc. Not present for anonymous users.
-                type: array
-                items:
-                  type: string
-                  minLength: 1
-              is_bot:
-                description: >
-                  True if this user is considered to be a bot at the time of
-                  this event. This is checked via the $user->isBot() method,
-                  which considers both user_groups and user permissions.
-                type: boolean
-              is_system:
-                description: >
-                  True if the user is a MediaWiki 'system' user. These are users
-                  that cannot 'authenticate'.  These are usually listed in
-                  ReservedUsernames.
-                type: boolean
-              is_temp:
-                description: >
-                  True if the user is an autocreated temporary MediaWiki user.
-                  This is used for IP masking.
-                type: boolean
-              registration_dt:
-                description: >
-                  The datetime of the user account registration. Not present for
-                  anonymous users or if missing in the MW database.
-                type: string
-                format: date-time
-                maxLength: 128
-              user_id:
-                description: >
-                  The user ID that performed this change.  This is optional, and
-                  will not be present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              user_text:
-                description: >
-                  The user name or text representation of the user that
-                  performed this change.
-                type: string
-                minLength: 1
-            examples:
-              - edit_count: 1351079888211148
-                groups:
-                  - dolor
-                is_bot: false
-                is_system: false
-                is_temp: false
-                registration_dt: '2021-01-01T00:00:00.0Z'
-                user_id: 1351079888211148
-                user_text: dolor
-          is_comment_visible:
-            description: >
-              Whether the comment of the revision is visible. See
-              RevisionRecord->DELETED_COMMENT.
-            type: boolean
-          is_content_visible:
-            description: >
-              Whether the revision's content body is visible. If this is false,
-              then content should be redacted. See RevisionRecord->DELETED_TEXT
-            type: boolean
-          is_editor_visible:
-            description: >
-              Whether the revision's editor information is visible. Affects
-              editor field. See RevisionRecord->DELETED_USER
-            type: boolean
-          is_minor_edit:
-            description: True if the editor marked this revision as a minor edit.
-            type: boolean
-          rev_dt:
-            description: >
-              Time this revision was created. This is rev_timestamp in the
-              MediaWiki database.
-            type: string
-            format: date-time
-            maxLength: 128
-          rev_id:
-            description: The (database) revision ID.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 1
-          rev_parent_id:
-            description: This revision's parent rev_id.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          rev_sha1:
-            description: |
-              sha1 sum considering all the content slots for this revision.
-            type: string
-          rev_size:
-            description: >
-              Byte size 'sum' of all the content slots for this revision. This
-              'size' is approximate, but may not be exact, depending on the kind
-              of data that is stored in the content slots.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - comment: dolor
-            editor:
-              edit_count: 1351079888211148
-              groups:
-                - dolor
-              is_bot: false
-              is_system: false
-              is_temp: false
-              registration_dt: '2021-01-01T00:00:00.0Z'
-              user_id: 1351079888211148
-              user_text: dolor
-            is_comment_visible: false
-            is_content_visible: false
-            is_editor_visible: false
-            is_minor_edit: false
-            rev_dt: '2021-01-01T00:00:00.0Z'
-            rev_id: 1351079888211149
-            rev_parent_id: 1351079888211148
-            rev_sha1: dolor
-            rev_size: 1351079888211148
-  revision:
-    title: fragment/mediawiki/state/entity/revision
-    description: Fields for MediaWiki revision entity.
-    $id: /fragment/mediawiki/state/entity/revision/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - rev_id
-      - rev_dt
-    properties:
-      comment:
-        description: The comment left by the editor when this revision was made.
-        type: string
-      content_slots:
-        title: fragment/mediawiki/state/entity/revision_slots
-        description: >
-          Map type representing MediaWiki's revision content slots. This map is
-          keyed by the slot role name, e.g. 'main'.
-        $id: /fragment/mediawiki/state/entity/revision_slots/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties:
-          title: fragment/mediawiki/state/entity/content
-          description: |
-            Fields for representing MediaWiki page revision content.
-          $id: /fragment/mediawiki/state/entity/content/1.0.0
-          $schema: 'https://json-schema.org/draft-07/schema#'
-          type: object
-          additionalProperties: false
-          properties:
-            content_body:
-              description: >
-                Content body. NOTE: This field is not required, and is often not
-                set in streams as it can make events very large. It is included
-                here for events that do include the content body.
-              type: string
-            content_format:
-              description: >-
-                The 'content type' of the content.  E.g. wikitext/html. This is
-                similiar to a MIME type.
-              type: string
-            content_model:
-              description: >-
-                MediaWiki's content model of this content. E.g. wikitext, json,
-                etc.
-              type: string
-            content_sha1:
-              description: sha1 sum of the content body.
-              type: string
-            content_size:
-              description: Byte size of the content body.
-              type: integer
-              maximum: 9007199254740991
-              minimum: 0
-            origin_rev_id:
-              description: Revision in which this slot was originally created
-              type: integer
-              maximum: 9007199254740991
-              minimum: 0
-            slot_role:
-              description: Slot role name.
-              type: string
-          examples:
-            - content_body: dolor
-              content_format: dolor
-              content_model: dolor
-              content_sha1: dolor
-              content_size: 1351079888211148
-              origin_rev_id: 1351079888211148
-        examples:
-          - dolorb:
-              content_body: dolor
-              content_format: dolor
-              content_model: dolor
-              content_sha1: dolor
-              content_size: 1351079888211148
-              origin_rev_id: 1351079888211148
-              slot_role: dolor
-      editor:
-        title: fragment/mediawiki/state/entity/user
-        description: Represents the MediaWiki user that made this edit.
-        $id: /fragment/mediawiki/state/entity/user/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          edit_count:
-            description: >
-              The number of edits this user has made at the time of this event.
-              Not present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          groups:
-            description: >
-              A list of the groups this user belongs to.  E.g. bot, sysop etc.
-              Not present for anonymous users.
-            type: array
-            items:
-              type: string
-              minLength: 1
-          is_bot:
-            description: >
-              True if this user is considered to be a bot at the time of this
-              event. This is checked via the $user->isBot() method, which
-              considers both user_groups and user permissions.
-            type: boolean
-          is_system:
-            description: >
-              True if the user is a MediaWiki 'system' user. These are users
-              that cannot 'authenticate'.  These are usually listed in
-              ReservedUsernames.
-            type: boolean
-          is_temp:
-            description: >
-              True if the user is an autocreated temporary MediaWiki user. This
-              is used for IP masking.
-            type: boolean
-          registration_dt:
-            description: >
-              The datetime of the user account registration. Not present for
-              anonymous users or if missing in the MW database.
-            type: string
-            format: date-time
-            maxLength: 128
-          user_id:
-            description: >
-              The user ID that performed this change.  This is optional, and
-              will not be present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          user_text:
-            description: >
-              The user name or text representation of the user that performed
-              this change.
-            type: string
-            minLength: 1
-        examples:
-          - edit_count: 1351079888211148
-            groups:
-              - dolor
-            is_bot: false
-            is_system: false
-            is_temp: false
-            registration_dt: '2021-01-01T00:00:00.0Z'
-            user_id: 1351079888211148
-            user_text: dolor
-      is_comment_visible:
-        description: >
-          Whether the comment of the revision is visible. See
-          RevisionRecord->DELETED_COMMENT.
-        type: boolean
-      is_content_visible:
-        description: >
-          Whether the revision's content body is visible. If this is false, then
-          content should be redacted. See RevisionRecord->DELETED_TEXT
-        type: boolean
-      is_editor_visible:
-        description: >
-          Whether the revision's editor information is visible. Affects editor
-          field. See RevisionRecord->DELETED_USER
-        type: boolean
-      is_minor_edit:
-        description: True if the editor marked this revision as a minor edit.
-        type: boolean
-      rev_dt:
-        description: >
-          Time this revision was created. This is rev_timestamp in the MediaWiki
-          database.
-        type: string
-        format: date-time
-        maxLength: 128
-      rev_id:
-        description: The (database) revision ID.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 1
-      rev_parent_id:
-        description: This revision's parent rev_id.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      rev_sha1:
-        description: |
-          sha1 sum considering all the content slots for this revision.
-        type: string
-      rev_size:
-        description: >
-          Byte size 'sum' of all the content slots for this revision. This
-          'size' is approximate, but may not be exact, depending on the kind of
-          data that is stored in the content slots.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - comment: dolor
-        editor:
-          edit_count: 1351079888211148
-          groups:
-            - dolor
-          is_bot: false
-          is_system: false
-          is_temp: false
-          registration_dt: '2021-01-01T00:00:00.0Z'
-          user_id: 1351079888211148
-          user_text: dolor
-        is_comment_visible: false
-        is_content_visible: false
-        is_editor_visible: false
-        is_minor_edit: false
-        rev_dt: '2021-01-01T00:00:00.0Z'
-        rev_id: 1351079888211149
-        rev_parent_id: 1351079888211148
-        rev_sha1: dolor
-        rev_size: 1351079888211148
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-examples:
-  - $schema: /mediawiki/page/change/1.1.0
-    changelog_kind: update
-    comment: changed a thing
-    dt: '2021-01-01T00:00:00.0Z'
-    meta:
-      domain: examplewiki
-      dt: '2021-01-01T00:00:00.0Z'
-      stream: mediawiki.page_change
-    page:
-      is_redirect: true
-      namespace_id: 1
-      page_id: 1
-      page_title: example
-      redirect_page_link:
-        is_redirect: false
-        namespace_id: 1
-        page_id: 2
-        page_title: Redirect_Target
-      revision_count: 1
-    page_change_kind: edit
-    performer:
-      user_id: 123
-      user_text: yoohoo
-    revision:
-      comment: changed a thing
-      content_slots:
-        main:
-          content_format: text/x-wiki
-          content_model: wikitext
-          content_sha1: 16619839a55cfb5c61bcf520bf9734e0c67f98cc
-          content_size: 100
-          origin_rev_id: 2
-          slot_role: main
-      editor:
-        user_id: 123
-        user_text: example
-      is_comment_visible: true
-      is_content_visible: true
-      is_editor_visible: true
-      is_minor_edit: false
-      rev_dt: '2021-01-01T00:00:00.0Z'
-      rev_id: 2
-      rev_parent_id: 1
-      rev_sha1: 16619839a55cfb5c61bcf520bf9734e0c67f98cc
-      rev_size: 100
-    wiki_id: example
-definitions:
-  revision_count:
-    description: >
-      The number of revisions of this page at the time of this event. During a
-      delete, this number of revisions will be archived. This field is likely
-      only set for page delete events, as getting this information on all events
-      is expensive.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
diff --git a/jsonschema/mediawiki/page/change/1.2.0 b/jsonschema/mediawiki/page/change/1.2.0
deleted file mode 120000
index c4a594d..0000000
--- a/jsonschema/mediawiki/page/change/1.2.0
+++ /dev/null
@@ -1 +0,0 @@
-1.2.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/change/1.2.0.yaml b/jsonschema/mediawiki/page/change/1.2.0.yaml
deleted file mode 100644
index 2f12a87..0000000
--- a/jsonschema/mediawiki/page/change/1.2.0.yaml
+++ /dev/null
@@ -1,819 +0,0 @@
-title: mediawiki/page/change
-description: >
-  Represents a MediaWiki page state change in a changelog. This event models all
-  state changes to MediaWiki pages. It supersedes the other page and revision
-  based event models. See: https://phabricator.wikimedia.org/T308017
-$id: /mediawiki/page/change/1.2.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - changelog_kind
-  - dt
-  - meta
-  - page
-  - page_change_kind
-  - revision
-  - wiki_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  changelog_kind:
-    description: >
-      The kind of this event in a changelog. This is used to map the event to an
-      action in a data store.
-    type: string
-    enum:
-      - insert
-      - update
-      - delete
-  comment:
-    description: >
-      The comment left by the user that performed this change. Same as
-      revision.comment on edits.
-    type: string
-  created_redirect_page:
-    title: fragment/mediawiki/state/entity/page
-    description: >
-      Page entity that was created at the old title during a page move. This is
-      only set for page move events. Note that the created_redirect_page will
-      also have its own associated page create event.
-    $id: /fragment/mediawiki/state/entity/page/2.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      revision_count:
-        description: >
-          NOTE: revision_count is never set for created_redirect_page. It is
-          present here for backwards compatibility only.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page:
-    title: fragment/mediawiki/state/entity/page
-    description: Fields for MediaWiki page entity.
-    $id: /fragment/mediawiki/state/entity/page/2.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      redirect_page_link:
-        title: fragment/mediawiki/state/entity/page_link
-        description: >
-          If this page is currently a redirect, then this field contains
-          information about the target page the redirect links to.
-        $id: /fragment/mediawiki/state/entity/page_link/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          interwiki_prefix:
-            description: >
-              The interwiki prefix (iw_prefix) of this link. The presence of
-              this prefix implies a target outside the local wiki. See
-              https://meta.wikimedia.org/wiki/Help:Interwiki_linking
-            type: string
-          is_redirect:
-            description: True if the page is a redirect page at the time of this event.
-            type: boolean
-          namespace_id:
-            description: The id of the namespace this page belongs to.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_id:
-            description: The (database) page ID of the page.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_title:
-            description: The normalized title of the page.
-            type: string
-            minLength: 1
-        examples:
-          - interwiki_prefix: dolor
-            is_redirect: false
-            namespace_id: 1351079888211148
-            page_id: 1351079888211148
-            page_title: dolor
-      revision_count:
-        description: >
-          The number of revisions of this page at the time of this event. During
-          a delete, this number of revisions will be archived. This field is
-          likely only set for page delete events, as getting this information on
-          all events is expensive.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-  page_change_kind:
-    description: |
-      The origin kind of the change to this page as viewed by MediaWiki.
-    type: string
-    enum:
-      - create
-      - undelete
-      - edit
-      - move
-      - delete
-      - visibility_change
-  performer:
-    title: fragment/mediawiki/state/entity/user
-    description: >
-      Represents the MediaWiki actor that made this change. If this change is an
-      edit, this will be the same as revision.editor.
-    $id: /fragment/mediawiki/state/entity/user/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    properties:
-      edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      groups:
-        description: >
-          A list of the groups this user belongs to.  E.g. bot, sysop etc. Not
-          present for anonymous users.
-        type: array
-        items:
-          type: string
-          minLength: 1
-      is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      is_system:
-        description: >
-          True if the user is a MediaWiki 'system' user. These are users that
-          cannot 'authenticate'.  These are usually listed in ReservedUsernames.
-        type: boolean
-      is_temp:
-        description: >
-          True if the user is an autocreated temporary MediaWiki user. This is
-          used for IP masking.
-        type: boolean
-      registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_id:
-        description: >
-          The user ID that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_text:
-        description: >
-          The user name or text representation of the user that performed this
-          change.
-        type: string
-        minLength: 1
-    examples:
-      - edit_count: 1351079888211148
-        groups:
-          - dolor
-        is_bot: false
-        is_system: false
-        is_temp: false
-        registration_dt: '2021-01-01T00:00:00.0Z'
-        user_id: 1351079888211148
-        user_text: dolor
-  prior_state:
-    description: >
-      Prior state of this page before this event. Fields are only present if
-      their values have changed.
-    type: object
-    properties:
-      page:
-        title: fragment/mediawiki/state/entity/page
-        description: Fields for MediaWiki page entity.
-        $id: /fragment/mediawiki/state/entity/page/2.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          is_redirect:
-            description: True if the page is a redirect page at the time of this event.
-            type: boolean
-          namespace_id:
-            description: The id of the namespace this page belongs to.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_id:
-            description: The (database) page ID of the page.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_title:
-            description: The normalized title of the page.
-            type: string
-            minLength: 1
-          revision_count:
-            description: >
-              NOTE: prior_state.page.revision_count is unlikely to be set, as
-              getting the # of revisions previous to this change is difficult.
-              This field is present here for backwards compatibiliy.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - is_redirect: false
-            namespace_id: 1351079888211148
-            page_id: 1351079888211148
-            page_title: dolor
-      revision:
-        title: fragment/mediawiki/state/entity/revision
-        description: Fields for MediaWiki revision entity.
-        $id: /fragment/mediawiki/state/entity/revision/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          comment:
-            description: The comment left by the editor when this revision was made.
-            type: string
-          content_slots:
-            title: fragment/mediawiki/state/entity/revision_slots
-            description: >
-              Map type representing MediaWiki's revision content slots. This map
-              is keyed by the slot role name, e.g. 'main'.
-            $id: /fragment/mediawiki/state/entity/revision_slots/1.0.0
-            $schema: 'https://json-schema.org/draft-07/schema#'
-            type: object
-            additionalProperties:
-              title: fragment/mediawiki/state/entity/content
-              description: |
-                Fields for representing MediaWiki page revision content.
-              $id: /fragment/mediawiki/state/entity/content/1.0.0
-              $schema: 'https://json-schema.org/draft-07/schema#'
-              type: object
-              additionalProperties: false
-              properties:
-                content_body:
-                  description: >
-                    Content body. NOTE: This field is not required, and is often
-                    not set in streams as it can make events very large. It is
-                    included here for events that do include the content body.
-                  type: string
-                content_format:
-                  description: >-
-                    The 'content type' of the content.  E.g. wikitext/html. This
-                    is similiar to a MIME type.
-                  type: string
-                content_model:
-                  description: >-
-                    MediaWiki's content model of this content. E.g. wikitext,
-                    json, etc.
-                  type: string
-                content_sha1:
-                  description: sha1 sum of the content body.
-                  type: string
-                content_size:
-                  description: Byte size of the content body.
-                  type: integer
-                  maximum: 9007199254740991
-                  minimum: 0
-                origin_rev_id:
-                  description: Revision in which this slot was originally created
-                  type: integer
-                  maximum: 9007199254740991
-                  minimum: 0
-                slot_role:
-                  description: Slot role name.
-                  type: string
-              examples:
-                - content_body: dolor
-                  content_format: dolor
-                  content_model: dolor
-                  content_sha1: dolor
-                  content_size: 1351079888211148
-                  origin_rev_id: 1351079888211148
-            examples:
-              - dolorb:
-                  content_body: dolor
-                  content_format: dolor
-                  content_model: dolor
-                  content_sha1: dolor
-                  content_size: 1351079888211148
-                  origin_rev_id: 1351079888211148
-                  slot_role: dolor
-          editor:
-            title: fragment/mediawiki/state/entity/user
-            description: Represents the MediaWiki user that made this edit.
-            $id: /fragment/mediawiki/state/entity/user/1.0.0
-            $schema: 'https://json-schema.org/draft-07/schema#'
-            type: object
-            additionalProperties: false
-            properties:
-              edit_count:
-                description: >
-                  The number of edits this user has made at the time of this
-                  event. Not present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              groups:
-                description: >
-                  A list of the groups this user belongs to.  E.g. bot, sysop
-                  etc. Not present for anonymous users.
-                type: array
-                items:
-                  type: string
-                  minLength: 1
-              is_bot:
-                description: >
-                  True if this user is considered to be a bot at the time of
-                  this event. This is checked via the $user->isBot() method,
-                  which considers both user_groups and user permissions.
-                type: boolean
-              is_system:
-                description: >
-                  True if the user is a MediaWiki 'system' user. These are users
-                  that cannot 'authenticate'.  These are usually listed in
-                  ReservedUsernames.
-                type: boolean
-              is_temp:
-                description: >
-                  True if the user is an autocreated temporary MediaWiki user.
-                  This is used for IP masking.
-                type: boolean
-              registration_dt:
-                description: >
-                  The datetime of the user account registration. Not present for
-                  anonymous users or if missing in the MW database.
-                type: string
-                format: date-time
-                maxLength: 128
-              user_id:
-                description: >
-                  The user ID that performed this change.  This is optional, and
-                  will not be present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              user_text:
-                description: >
-                  The user name or text representation of the user that
-                  performed this change.
-                type: string
-                minLength: 1
-            examples:
-              - edit_count: 1351079888211148
-                groups:
-                  - dolor
-                is_bot: false
-                is_system: false
-                is_temp: false
-                registration_dt: '2021-01-01T00:00:00.0Z'
-                user_id: 1351079888211148
-                user_text: dolor
-          is_comment_visible:
-            description: >
-              Whether the comment of the revision is visible. See
-              RevisionRecord->DELETED_COMMENT.
-            type: boolean
-          is_content_visible:
-            description: >
-              Whether the revision's content body is visible. If this is false,
-              then content should be redacted. See RevisionRecord->DELETED_TEXT
-            type: boolean
-          is_editor_visible:
-            description: >
-              Whether the revision's editor information is visible. Affects
-              editor field. See RevisionRecord->DELETED_USER
-            type: boolean
-          is_minor_edit:
-            description: True if the editor marked this revision as a minor edit.
-            type: boolean
-          rev_dt:
-            description: >
-              Time this revision was created. This is rev_timestamp in the
-              MediaWiki database.
-            type: string
-            format: date-time
-            maxLength: 128
-          rev_id:
-            description: The (database) revision ID.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 1
-          rev_parent_id:
-            description: This revision's parent rev_id.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          rev_sha1:
-            description: |
-              sha1 sum considering all the content slots for this revision.
-            type: string
-          rev_size:
-            description: >
-              Byte size 'sum' of all the content slots for this revision. This
-              'size' is approximate, but may not be exact, depending on the kind
-              of data that is stored in the content slots.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - comment: dolor
-            editor:
-              edit_count: 1351079888211148
-              groups:
-                - dolor
-              is_bot: false
-              is_system: false
-              is_temp: false
-              registration_dt: '2021-01-01T00:00:00.0Z'
-              user_id: 1351079888211148
-              user_text: dolor
-            is_comment_visible: false
-            is_content_visible: false
-            is_editor_visible: false
-            is_minor_edit: false
-            rev_dt: '2021-01-01T00:00:00.0Z'
-            rev_id: 1351079888211149
-            rev_parent_id: 1351079888211148
-            rev_sha1: dolor
-            rev_size: 1351079888211148
-  revision:
-    title: fragment/mediawiki/state/entity/revision
-    description: Fields for MediaWiki revision entity.
-    $id: /fragment/mediawiki/state/entity/revision/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - rev_id
-      - rev_dt
-    properties:
-      comment:
-        description: The comment left by the editor when this revision was made.
-        type: string
-      content_slots:
-        title: fragment/mediawiki/state/entity/revision_slots
-        description: >
-          Map type representing MediaWiki's revision content slots. This map is
-          keyed by the slot role name, e.g. 'main'.
-        $id: /fragment/mediawiki/state/entity/revision_slots/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties:
-          title: fragment/mediawiki/state/entity/content
-          description: |
-            Fields for representing MediaWiki page revision content.
-          $id: /fragment/mediawiki/state/entity/content/1.0.0
-          $schema: 'https://json-schema.org/draft-07/schema#'
-          type: object
-          additionalProperties: false
-          properties:
-            content_body:
-              description: >
-                Content body. NOTE: This field is not required, and is often not
-                set in streams as it can make events very large. It is included
-                here for events that do include the content body.
-              type: string
-            content_format:
-              description: >-
-                The 'content type' of the content.  E.g. wikitext/html. This is
-                similiar to a MIME type.
-              type: string
-            content_model:
-              description: >-
-                MediaWiki's content model of this content. E.g. wikitext, json,
-                etc.
-              type: string
-            content_sha1:
-              description: sha1 sum of the content body.
-              type: string
-            content_size:
-              description: Byte size of the content body.
-              type: integer
-              maximum: 9007199254740991
-              minimum: 0
-            origin_rev_id:
-              description: Revision in which this slot was originally created
-              type: integer
-              maximum: 9007199254740991
-              minimum: 0
-            slot_role:
-              description: Slot role name.
-              type: string
-          examples:
-            - content_body: dolor
-              content_format: dolor
-              content_model: dolor
-              content_sha1: dolor
-              content_size: 1351079888211148
-              origin_rev_id: 1351079888211148
-        examples:
-          - dolorb:
-              content_body: dolor
-              content_format: dolor
-              content_model: dolor
-              content_sha1: dolor
-              content_size: 1351079888211148
-              origin_rev_id: 1351079888211148
-              slot_role: dolor
-      editor:
-        title: fragment/mediawiki/state/entity/user
-        description: Represents the MediaWiki user that made this edit.
-        $id: /fragment/mediawiki/state/entity/user/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          edit_count:
-            description: >
-              The number of edits this user has made at the time of this event.
-              Not present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          groups:
-            description: >
-              A list of the groups this user belongs to.  E.g. bot, sysop etc.
-              Not present for anonymous users.
-            type: array
-            items:
-              type: string
-              minLength: 1
-          is_bot:
-            description: >
-              True if this user is considered to be a bot at the time of this
-              event. This is checked via the $user->isBot() method, which
-              considers both user_groups and user permissions.
-            type: boolean
-          is_system:
-            description: >
-              True if the user is a MediaWiki 'system' user. These are users
-              that cannot 'authenticate'.  These are usually listed in
-              ReservedUsernames.
-            type: boolean
-          is_temp:
-            description: >
-              True if the user is an autocreated temporary MediaWiki user. This
-              is used for IP masking.
-            type: boolean
-          registration_dt:
-            description: >
-              The datetime of the user account registration. Not present for
-              anonymous users or if missing in the MW database.
-            type: string
-            format: date-time
-            maxLength: 128
-          user_id:
-            description: >
-              The user ID that performed this change.  This is optional, and
-              will not be present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          user_text:
-            description: >
-              The user name or text representation of the user that performed
-              this change.
-            type: string
-            minLength: 1
-        examples:
-          - edit_count: 1351079888211148
-            groups:
-              - dolor
-            is_bot: false
-            is_system: false
-            is_temp: false
-            registration_dt: '2021-01-01T00:00:00.0Z'
-            user_id: 1351079888211148
-            user_text: dolor
-      is_comment_visible:
-        description: >
-          Whether the comment of the revision is visible. See
-          RevisionRecord->DELETED_COMMENT.
-        type: boolean
-      is_content_visible:
-        description: >
-          Whether the revision's content body is visible. If this is false, then
-          content should be redacted. See RevisionRecord->DELETED_TEXT
-        type: boolean
-      is_editor_visible:
-        description: >
-          Whether the revision's editor information is visible. Affects editor
-          field. See RevisionRecord->DELETED_USER
-        type: boolean
-      is_minor_edit:
-        description: True if the editor marked this revision as a minor edit.
-        type: boolean
-      rev_dt:
-        description: >
-          Time this revision was created. This is rev_timestamp in the MediaWiki
-          database.
-        type: string
-        format: date-time
-        maxLength: 128
-      rev_id:
-        description: The (database) revision ID.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 1
-      rev_parent_id:
-        description: This revision's parent rev_id.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      rev_sha1:
-        description: |
-          sha1 sum considering all the content slots for this revision.
-        type: string
-      rev_size:
-        description: >
-          Byte size 'sum' of all the content slots for this revision. This
-          'size' is approximate, but may not be exact, depending on the kind of
-          data that is stored in the content slots.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - comment: dolor
-        editor:
-          edit_count: 1351079888211148
-          groups:
-            - dolor
-          is_bot: false
-          is_system: false
-          is_temp: false
-          registration_dt: '2021-01-01T00:00:00.0Z'
-          user_id: 1351079888211148
-          user_text: dolor
-        is_comment_visible: false
-        is_content_visible: false
-        is_editor_visible: false
-        is_minor_edit: false
-        rev_dt: '2021-01-01T00:00:00.0Z'
-        rev_id: 1351079888211149
-        rev_parent_id: 1351079888211148
-        rev_sha1: dolor
-        rev_size: 1351079888211148
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-examples:
-  - $schema: /mediawiki/page/change/1.2.0
-    changelog_kind: update
-    comment: changed a thing
-    dt: '2021-01-01T00:00:00.0Z'
-    meta:
-      domain: examplewiki
-      dt: '2021-01-01T00:00:00.0Z'
-      stream: mediawiki.page_change
-    page:
-      is_redirect: true
-      namespace_id: 1
-      page_id: 1
-      page_title: example
-      redirect_page_link:
-        is_redirect: false
-        namespace_id: 1
-        page_id: 2
-        page_title: Redirect_Target
-      revision_count: 1
-    page_change_kind: edit
-    performer:
-      user_id: 123
-      user_text: yoohoo
-    revision:
-      comment: changed a thing
-      content_slots:
-        main:
-          content_format: text/x-wiki
-          content_model: wikitext
-          content_sha1: 16619839a55cfb5c61bcf520bf9734e0c67f98cc
-          content_size: 100
-          origin_rev_id: 2
-          slot_role: main
-      editor:
-        user_id: 123
-        user_text: example
-      is_comment_visible: true
-      is_content_visible: true
-      is_editor_visible: true
-      is_minor_edit: false
-      rev_dt: '2021-01-01T00:00:00.0Z'
-      rev_id: 2
-      rev_parent_id: 1
-      rev_sha1: 16619839a55cfb5c61bcf520bf9734e0c67f98cc
-      rev_size: 100
-    wiki_id: example
-definitions:
-  revision_count:
-    description: >
-      The number of revisions of this page at the time of this event. During a
-      delete, this number of revisions will be archived. This field is likely
-      only set for page delete events, as getting this information on all events
-      is expensive.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
diff --git a/jsonschema/mediawiki/page/change/CHANGELOG.md b/jsonschema/mediawiki/page/change/CHANGELOG.md
deleted file mode 100644
index 19c6bfb..0000000
--- a/jsonschema/mediawiki/page/change/CHANGELOG.md
+++ /dev/null
@@ -1,10 +0,0 @@
-### Version 1.2.0
-- performer is now optional by using fragment/mediawiki/state/change/1.2.0.
-  We don't set performer for revision visibility changes where the change is
-  admin suppressed.
-  https://phabricator.wikimedia.org/T342487
-  NOTE: While removing required-ness is technically a breaking change
-  that requires a major version bump,
-  it should not break any consumers in this case.
-  We've added an exception in .jsonschema-tools.yaml to skip the
-  backwards compatibility check for version 1.2.0.
diff --git a/jsonschema/mediawiki/page/change/current.yaml b/jsonschema/mediawiki/page/change/current.yaml
deleted file mode 100644
index 74ed6ca..0000000
--- a/jsonschema/mediawiki/page/change/current.yaml
+++ /dev/null
@@ -1,78 +0,0 @@
-title: mediawiki/page/change
-description: >
-  Represents a MediaWiki page state change in a changelog.
-  This event models all state changes to MediaWiki pages.
-  It supersedes the other page and revision based event models.
-  See: https://phabricator.wikimedia.org/T308017
-
-$id: /mediawiki/page/change/1.2.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-allOf:
-  - $ref: /fragment/common/2.0.0#
-  - $ref: /fragment/mediawiki/state/change/page/1.2.0
-
-properties:
-  revision:
-    type: object
-    properties:
-      # Add the content_slots field as a map type using the entity/revision_slots schema.
-      content_slots:
-        $ref: /fragment/mediawiki/state/entity/revision_slots/1.0.0
-  prior_state:
-    type: object
-    properties:
-      # Since we added the content_slots field to the top level revision field,
-      # we need to add it to the prior_state.revision field too.
-      # Do so by redeclaring prior_state.revision to be the same as top level revision.
-      revision:
-        $ref: '#/properties/revision'
-
-examples:
-  - $schema: { $ref: '#/$id' }
-    dt: '2021-01-01T00:00:00.0Z'
-    meta:
-      domain: examplewiki
-      dt: '2021-01-01T00:00:00.0Z'
-      stream: mediawiki.page_change
-    changelog_kind: update
-    page_change_kind: edit
-    wiki_id: example
-    comment: changed a thing
-    page:
-      namespace_id: 1
-      page_id: 1
-      page_title: example
-      revision_count: 1
-      is_redirect: true
-      redirect_page_link:
-        page_id: 2
-        is_redirect: false
-        page_title: Redirect_Target
-        namespace_id: 1
-    performer:
-      user_id: 123
-      user_text: yoohoo
-    revision:
-      rev_dt: '2021-01-01T00:00:00.0Z'
-      rev_id: 2
-      rev_parent_id: 1
-      rev_sha1: 16619839a55cfb5c61bcf520bf9734e0c67f98cc
-      rev_size: 100
-      comment: changed a thing
-      editor:
-        user_id: 123
-        user_text: example
-      is_minor_edit: false
-      is_comment_visible: true
-      is_content_visible: true
-      is_editor_visible: true
-      content_slots:
-        main:
-          slot_role: main
-          content_size: 100
-          content_sha1: 16619839a55cfb5c61bcf520bf9734e0c67f98cc
-          content_format: text/x-wiki
-          content_model: wikitext
-          origin_rev_id: 2
diff --git a/jsonschema/mediawiki/page/change/latest b/jsonschema/mediawiki/page/change/latest
deleted file mode 120000
index c4a594d..0000000
--- a/jsonschema/mediawiki/page/change/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.2.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/change/latest.yaml b/jsonschema/mediawiki/page/change/latest.yaml
deleted file mode 120000
index c4a594d..0000000
--- a/jsonschema/mediawiki/page/change/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.2.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/delete/1.0.0 b/jsonschema/mediawiki/page/delete/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/delete/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/delete/1.0.0.yaml b/jsonschema/mediawiki/page/delete/1.0.0.yaml
deleted file mode 100644
index 45c21b4..0000000
--- a/jsonschema/mediawiki/page/delete/1.0.0.yaml
+++ /dev/null
@@ -1,154 +0,0 @@
-title: mediawiki/page/delete
-description: Represents a MW Page Delete event.
-$id: /mediawiki/page/delete/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  chronology_id:
-    description: Deprecated - no longer populated
-    type: string
-  comment:
-    description: The comment left by the user that performed this change.
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The (database) page ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_is_redirect:
-    description: >
-      True if this page is currently a redirect page.  This fact is ultimately
-      represented by revision content containing redirect wikitext.  If rev_id's
-      content has redirect wikitext, then this page is a redirect.  Note that
-      this state is also stored on the Mediawiki page table.
-    type: boolean
-  page_namespace:
-    description: The namespace ID this page belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-  parsedcomment:
-    description: >
-      The comment left by the user that performed this change parsed into simple
-      HTML. Optional
-    type: string
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  rev_count:
-    description: >
-      The number of revisions of this page at the time of this event. During a
-      delete, this number of revisions will be archived.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  rev_id:
-    description: The head revision of the page at the time of this event.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-examples:
-  - $schema: /mediawiki/page/delete/1.0.0
-    database: examplewiki
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: medaiwiki.page-delete
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: example_page_title
-    rev_id: 123
diff --git a/jsonschema/mediawiki/page/delete/CHANGELOG.md b/jsonschema/mediawiki/page/delete/CHANGELOG.md
deleted file mode 100644
index 80309ff..0000000
--- a/jsonschema/mediawiki/page/delete/CHANGELOG.md
+++ /dev/null
@@ -1,11 +0,0 @@
-### Version 1.0.0
- - Updated to draft-07 new schema conventions.
-
-### Version 4
- - Added `chronology_id` field.
-
-### Version 3
- - Added `minLength: 1` for required string properties.
-
-### Version 2
- - Added `parsedcomment` optional field.
diff --git a/jsonschema/mediawiki/page/delete/current.yaml b/jsonschema/mediawiki/page/delete/current.yaml
deleted file mode 100644
index 715545e..0000000
--- a/jsonschema/mediawiki/page/delete/current.yaml
+++ /dev/null
@@ -1,40 +0,0 @@
-title: mediawiki/page/delete
-description: Represents a MW Page Delete event.
-$id: /mediawiki/page/delete/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/mediawiki/page/common/1.0.0#
-  - properties:
-      chronology_id:
-        description: Deprecated - no longer populated
-        type: string
-
-      comment:
-        description: The comment left by the user that performed this change.
-        type: string
-
-      parsedcomment:
-        description: >
-          The comment left by the user that performed this change
-          parsed into simple HTML. Optional
-        type: string
-
-      rev_count:
-        description: >
-          The number of revisions of this page at the time of this event.
-          During a delete, this number of revisions will be archived.
-        type: integer
-examples:
-  - $schema: { $ref: '#/$id' }
-    meta:
-      stream: medaiwiki.page-delete
-      dt: '2020-07-01T00:00:00Z'
-    database: examplewiki
-    page_id: 123
-    page_title: example_page_title
-    page_is_redirect: false
-    page_namespace: 0
-    rev_id: 123
-
-
diff --git a/jsonschema/mediawiki/page/delete/latest b/jsonschema/mediawiki/page/delete/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/delete/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/delete/latest.yaml b/jsonschema/mediawiki/page/delete/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/delete/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/links-change/1.0.0 b/jsonschema/mediawiki/page/links-change/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/links-change/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/links-change/1.0.0.yaml b/jsonschema/mediawiki/page/links-change/1.0.0.yaml
deleted file mode 100644
index 2f5a954..0000000
--- a/jsonschema/mediawiki/page/links-change/1.0.0.yaml
+++ /dev/null
@@ -1,171 +0,0 @@
-title: mediawiki/page/links-change
-description: Represents a MW Page Links Change event.
-$id: /mediawiki/page/links-change/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  added_links:
-    description: >
-      The new page links. This map would only contain links that were either
-      added or changed, links that were intact would not be present here. If the
-      link was changed, its previous value would be present in the
-      'removed_links' object.
-    type: array
-    items:
-      type: object
-      properties:
-        external:
-          description: Whether link is external
-          type: boolean
-        link:
-          description: Link being added
-          type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The (database) page ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_is_redirect:
-    description: >
-      True if this page is currently a redirect page.  This fact is ultimately
-      represented by revision content containing redirect wikitext.  If rev_id's
-      content has redirect wikitext, then this page is a redirect.  Note that
-      this state is also stored on the Mediawiki page table.
-    type: boolean
-  page_namespace:
-    description: The namespace ID this page belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  removed_links:
-    description: >
-      The old page links. This map would only contain the previous values of the
-      links that were either removed or changed by this event. Links that were
-      intact would not be present here. If the link was changed, its new value
-      would be present in the 'added_links' object.
-    type: array
-    items:
-      type: object
-      properties:
-        external:
-          description: Whether link is external
-          type: boolean
-        link:
-          description: Link being removed
-          type: string
-  rev_id:
-    description: The head revision of the page at the time of this event.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-examples:
-  - $schema: /mediawiki/page/links-change/1.0.0
-    added_links:
-      - external: false
-        link: example_link
-    database: examplewiki
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: medaiwiki.page-links-change
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: example_page_title
-    rev_id: 123
diff --git a/jsonschema/mediawiki/page/links-change/current.yaml b/jsonschema/mediawiki/page/links-change/current.yaml
deleted file mode 100644
index e713a8f..0000000
--- a/jsonschema/mediawiki/page/links-change/current.yaml
+++ /dev/null
@@ -1,58 +0,0 @@
-title: mediawiki/page/links-change
-description: Represents a MW Page Links Change event.
-$id: /mediawiki/page/links-change/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/mediawiki/page/common/1.0.0#
-  - properties:
-      removed_links:
-        description: >
-          The old page links. This map would only contain the previous
-          values of the links that were either removed or changed by this
-          event. Links that were intact would not be present here. If the
-          link was changed, its new value would be present in the
-          'added_links' object.
-        type: array
-        items:
-          type: object
-          properties:
-            link:
-              description: Link being removed
-              type: string
-            external:
-              description: Whether link is external
-              type: boolean
-      added_links:
-        description: >
-          The new page links. This map would only contain links that were
-          either added or changed, links that were intact would not be
-          present here. If the link was changed, its previous value would be
-          present in the 'removed_links' object.
-        type: array
-        items:
-          type: object
-          properties:
-            link:
-              description: Link being added
-              type: string
-            external:
-              description: Whether link is external
-              type: boolean
-
-examples:
-  - $schema: { $ref: '#/$id' }
-    meta:
-      stream: medaiwiki.page-links-change
-      dt: '2020-07-01T00:00:00Z'
-    database: examplewiki
-    page_id: 123
-    page_title: example_page_title
-    page_is_redirect: false
-    page_namespace: 0
-    rev_id: 123
-    added_links:
-      - link: example_link
-        external: false
-
-
diff --git a/jsonschema/mediawiki/page/links-change/latest b/jsonschema/mediawiki/page/links-change/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/links-change/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/links-change/latest.yaml b/jsonschema/mediawiki/page/links-change/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/links-change/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/move/1.0.0 b/jsonschema/mediawiki/page/move/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/move/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/move/1.0.0.yaml b/jsonschema/mediawiki/page/move/1.0.0.yaml
deleted file mode 100644
index 27f05a8..0000000
--- a/jsonschema/mediawiki/page/move/1.0.0.yaml
+++ /dev/null
@@ -1,206 +0,0 @@
-title: mediawiki/page/move
-description: Represents a MW Page Move event.
-$id: /mediawiki/page/move/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - prior_state
-  - rev_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  comment:
-    description: The comment left by the user that performed this change.
-    type: string
-    minLength: 1
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  new_redirect_page:
-    description: >
-      Information about the new redirect page auto-created at the old title as a
-      result of this page move. This field is optional and will be absent if no
-      redirect page was created.
-    type: object
-    required:
-      - page_id
-      - page_title
-      - page_namespace
-      - rev_id
-    properties:
-      page_id:
-        description: The page ID of the newly created redirect page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 1
-      page_namespace:
-        description: This will be the same as prior_state.page_namespace.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      page_title:
-        description: This will be the same as prior_state.page_title.
-        type: string
-        minLength: 1
-      rev_id:
-        description: The revision created for the newly created redirect page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-  page_id:
-    description: The (database) page ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_is_redirect:
-    description: >
-      True if this page is currently a redirect page.  This fact is ultimately
-      represented by revision content containing redirect wikitext.  If rev_id's
-      content has redirect wikitext, then this page is a redirect.  Note that
-      this state is also stored on the Mediawiki page table.
-    type: boolean
-  page_namespace:
-    description: The namespace ID this page belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-  parsedcomment:
-    description: >
-      The comment left by the user that performed this change parsed into simple
-      HTML. Optional
-    type: string
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  prior_state:
-    description: >
-      The prior state of the entity before this event. If a top level entity
-      field is not present in this object, then its value has not changed since
-      the prior event.
-    type: object
-    required:
-      - page_title
-      - page_namespace
-      - rev_id
-    properties:
-      page_namespace:
-        description: The namespace ID this page belonged to before this event.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      page_title:
-        description: The normalized title of this page before this event.
-        type: string
-        minLength: 1
-      rev_id:
-        description: The head revision of this page before this event.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-  rev_id:
-    description: The head revision of the page at the time of this event.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-examples:
-  - $schema: /mediawiki/page/move/1.0.0
-    database: examplewiki
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: medaiwiki.page-move
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: example_page_title
-    prior_state:
-      page_namespace: 0
-      page_title: example_old_page_title
-      rev_id: 122
-    rev_id: 123
diff --git a/jsonschema/mediawiki/page/move/CHANGELOG.md b/jsonschema/mediawiki/page/move/CHANGELOG.md
deleted file mode 100644
index 43d9a69..0000000
--- a/jsonschema/mediawiki/page/move/CHANGELOG.md
+++ /dev/null
@@ -1,9 +0,0 @@
-### Version 1.0.0
- - Updated to draft-07 new schema conventions.
-
-### Version 3
- - Added `minLength: 1` for required string properties.
-
-### Version 2
- - Added `parsedcomment` optional field.
-
diff --git a/jsonschema/mediawiki/page/move/current.yaml b/jsonschema/mediawiki/page/move/current.yaml
deleted file mode 100644
index 14a0dc1..0000000
--- a/jsonschema/mediawiki/page/move/current.yaml
+++ /dev/null
@@ -1,92 +0,0 @@
-title: mediawiki/page/move
-description: Represents a MW Page Move event.
-$id: /mediawiki/page/move/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/mediawiki/page/common/1.0.0#
-  - properties:
-      comment:
-        description: The comment left by the user that performed this change.
-        type: string
-        minLength: 1
-
-      parsedcomment:
-        description: >
-          The comment left by the user that performed this change
-          parsed into simple HTML. Optional
-        type: string
-
-      prior_state:
-        description: >
-          The prior state of the entity before this event. If a top level entity
-          field is not present in this object, then its value has not changed
-          since the prior event.
-        type: object
-        properties:
-          page_title:
-            description: The normalized title of this page before this event.
-            type: string
-            minLength: 1
-          page_namespace:
-            description: The namespace ID this page belonged to before this event.
-            type: integer
-          rev_id:
-            description: The head revision of this page before this event.
-            type: integer
-            minimum: 0
-        required:
-          - page_title
-          - page_namespace
-          - rev_id
-
-      new_redirect_page:
-        description: >
-          Information about the new redirect page auto-created
-          at the old title as a result of this page move.
-          This field is optional and will be absent if no redirect
-          page was created.
-        type: object
-        properties:
-          page_id:
-            description: The page ID of the newly created redirect page.
-            type: integer
-            minimum: 1
-          page_title:
-            description: This will be the same as prior_state.page_title.
-            type: string
-            minLength: 1
-          page_namespace:
-            description: This will be the same as prior_state.page_namespace.
-            type: integer
-          rev_id:
-            description: The revision created for the newly created redirect page.
-            type: integer
-            minimum: 0
-        required:
-          - page_id
-          - page_title
-          - page_namespace
-          - rev_id
-
-required:
-  - prior_state
-
-examples:
-  - $schema: { $ref: '#/$id' }
-    meta:
-      stream: medaiwiki.page-move
-      dt: '2020-07-01T00:00:00Z'
-    database: examplewiki
-    page_id: 123
-    page_title: example_page_title
-    page_is_redirect: false
-    page_namespace: 0
-    rev_id: 123
-    prior_state:
-      page_title: example_old_page_title
-      page_namespace: 0
-      rev_id: 122
-
-
-
diff --git a/jsonschema/mediawiki/page/move/latest b/jsonschema/mediawiki/page/move/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/move/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/move/latest.yaml b/jsonschema/mediawiki/page/move/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/move/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/prediction_classification_change/1.0.0 b/jsonschema/mediawiki/page/prediction_classification_change/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/prediction_classification_change/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/prediction_classification_change/1.0.0.yaml b/jsonschema/mediawiki/page/prediction_classification_change/1.0.0.yaml
deleted file mode 100644
index 638bfa8..0000000
--- a/jsonschema/mediawiki/page/prediction_classification_change/1.0.0.yaml
+++ /dev/null
@@ -1,674 +0,0 @@
-title: mediawiki/page/prediction_classification_change
-description: >
-  Represents a classification model output (topic, revert, quality, etc.). -
-  topic model:
-  https://meta.wikimedia.org/wiki/Machine_learning_models/Production/Language_agnostic_link-based_article_topic_model_card
-  - quality model:
-  https://meta.wikimedia.org/wiki/Machine_learning_models/Proposed/Language-agnostic_Wikipedia_article_quality_model_card
-$id: /mediawiki/page/prediction_classification_change/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - changelog_kind
-  - dt
-  - meta
-  - page
-  - page_change_kind
-  - performer
-  - revision
-  - wiki_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  changelog_kind:
-    description: >
-      The kind of this event in a changelog. This is used to map the event to an
-      action in a data store.
-    type: string
-    enum:
-      - insert
-      - update
-      - delete
-  comment:
-    description: >
-      The comment left by the user that performed this change. Same as
-      revision.comment on edits.
-    type: string
-  created_redirect_page:
-    title: fragment/mediawiki/state/entity/page
-    description: >
-      Page entity that was created at the old title during a page move. This is
-      only set for page move events. Note that the created_redirect_page will
-      also have its own associated page create event.
-    $id: /fragment/mediawiki/state/entity/page/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      revision_count:
-        description: >
-          The number of revisions of this page at the time of this event. During
-          a delete, this number of revisions will be archived. This field is
-          likely only set for page delete events, as getting this information on
-          all events is expensive.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-        revision_count: 1351079888211148
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page:
-    title: fragment/mediawiki/state/entity/page
-    description: Fields for MediaWiki page entity.
-    $id: /fragment/mediawiki/state/entity/page/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      revision_count:
-        description: >
-          The number of revisions of this page at the time of this event. During
-          a delete, this number of revisions will be archived. This field is
-          likely only set for page delete events, as getting this information on
-          all events is expensive.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-        revision_count: 1351079888211148
-  page_change_kind:
-    description: |
-      The origin kind of the change to this page as viewed by MediaWiki.
-    type: string
-    enum:
-      - create
-      - undelete
-      - edit
-      - move
-      - delete
-      - visibility_change
-  performer:
-    title: fragment/mediawiki/state/entity/user
-    description: >
-      Represents the MediaWiki actor that made this change. If this change is an
-      edit, this will be the same as revision.editor.
-    $id: /fragment/mediawiki/state/entity/user/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    properties:
-      edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      groups:
-        description: >
-          A list of the groups this user belongs to.  E.g. bot, sysop etc. Not
-          present for anonymous users.
-        type: array
-        items:
-          type: string
-          minLength: 1
-      is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      is_system:
-        description: >
-          True if the user is a MediaWiki 'system' user. These are users that
-          cannot 'authenticate'.  These are usually listed in ReservedUsernames.
-        type: boolean
-      is_temp:
-        description: >
-          True if the user is an autocreated temporary MediaWiki user. This is
-          used for IP masking.
-        type: boolean
-      registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_id:
-        description: >
-          The user ID that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_text:
-        description: >
-          The user name or text representation of the user that performed this
-          change.
-        type: string
-        minLength: 1
-    examples:
-      - edit_count: 1351079888211148
-        groups:
-          - dolor
-        is_bot: false
-        is_system: false
-        is_temp: false
-        registration_dt: '2021-01-01T00:00:00.0Z'
-        user_id: 1351079888211148
-        user_text: dolor
-  predicted_classification:
-    type: object
-    required:
-      - model_name
-      - model_version
-      - predictions
-      - probabilities
-    properties:
-      model_name:
-        description: The name of the classsification model used.
-        type: string
-      model_version:
-        description: The version of the classsification model used.
-        type: string
-      predictions:
-        description: A list of predictions made by this model.
-        type: array
-        items:
-          type: string
-      probabilities:
-        description: >
-          A list of probabilities made by this model. Each element is a
-          key/value with class name and associated [0-1] probability.
-        type: object
-        additionalProperties:
-          type: number
-          maximum: 9007199254740991
-          minimum: -9007199254740991
-  prior_state:
-    description: >
-      Prior state of this page before this event. Fields are only present if
-      their values have changed.
-    type: object
-    properties:
-      page:
-        title: fragment/mediawiki/state/entity/page
-        description: Fields for MediaWiki page entity.
-        $id: /fragment/mediawiki/state/entity/page/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          is_redirect:
-            description: True if the page is a redirect page at the time of this event.
-            type: boolean
-          namespace_id:
-            description: The id of the namespace this page belongs to.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_id:
-            description: The (database) page ID of the page.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_title:
-            description: The normalized title of the page.
-            type: string
-            minLength: 1
-          revision_count:
-            description: >
-              The number of revisions of this page at the time of this event.
-              During a delete, this number of revisions will be archived. This
-              field is likely only set for page delete events, as getting this
-              information on all events is expensive.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - is_redirect: false
-            namespace_id: 1351079888211148
-            page_id: 1351079888211148
-            page_title: dolor
-            revision_count: 1351079888211148
-      revision:
-        title: fragment/mediawiki/state/entity/revision
-        description: Fields for MediaWiki revision entity.
-        $id: /fragment/mediawiki/state/entity/revision/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          comment:
-            description: The comment left by the editor when this revision was made.
-            type: string
-          editor:
-            title: fragment/mediawiki/state/entity/user
-            description: Represents the MediaWiki user that made this edit.
-            $id: /fragment/mediawiki/state/entity/user/1.0.0
-            $schema: 'https://json-schema.org/draft-07/schema#'
-            type: object
-            additionalProperties: false
-            properties:
-              edit_count:
-                description: >
-                  The number of edits this user has made at the time of this
-                  event. Not present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              groups:
-                description: >
-                  A list of the groups this user belongs to.  E.g. bot, sysop
-                  etc. Not present for anonymous users.
-                type: array
-                items:
-                  type: string
-                  minLength: 1
-              is_bot:
-                description: >
-                  True if this user is considered to be a bot at the time of
-                  this event. This is checked via the $user->isBot() method,
-                  which considers both user_groups and user permissions.
-                type: boolean
-              is_system:
-                description: >
-                  True if the user is a MediaWiki 'system' user. These are users
-                  that cannot 'authenticate'.  These are usually listed in
-                  ReservedUsernames.
-                type: boolean
-              is_temp:
-                description: >
-                  True if the user is an autocreated temporary MediaWiki user.
-                  This is used for IP masking.
-                type: boolean
-              registration_dt:
-                description: >
-                  The datetime of the user account registration. Not present for
-                  anonymous users or if missing in the MW database.
-                type: string
-                format: date-time
-                maxLength: 128
-              user_id:
-                description: >
-                  The user ID that performed this change.  This is optional, and
-                  will not be present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              user_text:
-                description: >
-                  The user name or text representation of the user that
-                  performed this change.
-                type: string
-                minLength: 1
-            examples:
-              - edit_count: 1351079888211148
-                groups:
-                  - dolor
-                is_bot: false
-                is_system: false
-                is_temp: false
-                registration_dt: '2021-01-01T00:00:00.0Z'
-                user_id: 1351079888211148
-                user_text: dolor
-          is_comment_visible:
-            description: >
-              Whether the comment of the revision is visible. See
-              RevisionRecord->DELETED_COMMENT.
-            type: boolean
-          is_content_visible:
-            description: >
-              Whether the revision's content body is visible. If this is false,
-              then content should be redacted. See RevisionRecord->DELETED_TEXT
-            type: boolean
-          is_editor_visible:
-            description: >
-              Whether the revision's editor information is visible. Affects
-              editor field. See RevisionRecord->DELETED_USER
-            type: boolean
-          is_minor_edit:
-            description: True if the editor marked this revision as a minor edit.
-            type: boolean
-          rev_dt:
-            description: >
-              Time this revision was created. This is rev_timestamp in the
-              MediaWiki database.
-            type: string
-            format: date-time
-            maxLength: 128
-          rev_id:
-            description: The (database) revision ID.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 1
-          rev_parent_id:
-            description: This revision's parent rev_id.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          rev_sha1:
-            description: |
-              sha1 sum considering all the content slots for this revision.
-            type: string
-          rev_size:
-            description: >
-              Byte size 'sum' of all the content slots for this revision. This
-              'size' is approximate, but may not be exact, depending on the kind
-              of data that is stored in the content slots.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - comment: dolor
-            editor:
-              edit_count: 1351079888211148
-              groups:
-                - dolor
-              is_bot: false
-              is_system: false
-              is_temp: false
-              registration_dt: '2021-01-01T00:00:00.0Z'
-              user_id: 1351079888211148
-              user_text: dolor
-            is_comment_visible: false
-            is_content_visible: false
-            is_editor_visible: false
-            is_minor_edit: false
-            rev_dt: '2021-01-01T00:00:00.0Z'
-            rev_id: 1351079888211149
-            rev_parent_id: 1351079888211148
-            rev_sha1: dolor
-            rev_size: 1351079888211148
-  revision:
-    title: fragment/mediawiki/state/entity/revision
-    description: Fields for MediaWiki revision entity.
-    $id: /fragment/mediawiki/state/entity/revision/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - rev_id
-      - rev_dt
-    properties:
-      comment:
-        description: The comment left by the editor when this revision was made.
-        type: string
-      editor:
-        title: fragment/mediawiki/state/entity/user
-        description: Represents the MediaWiki user that made this edit.
-        $id: /fragment/mediawiki/state/entity/user/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          edit_count:
-            description: >
-              The number of edits this user has made at the time of this event.
-              Not present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          groups:
-            description: >
-              A list of the groups this user belongs to.  E.g. bot, sysop etc.
-              Not present for anonymous users.
-            type: array
-            items:
-              type: string
-              minLength: 1
-          is_bot:
-            description: >
-              True if this user is considered to be a bot at the time of this
-              event. This is checked via the $user->isBot() method, which
-              considers both user_groups and user permissions.
-            type: boolean
-          is_system:
-            description: >
-              True if the user is a MediaWiki 'system' user. These are users
-              that cannot 'authenticate'.  These are usually listed in
-              ReservedUsernames.
-            type: boolean
-          is_temp:
-            description: >
-              True if the user is an autocreated temporary MediaWiki user. This
-              is used for IP masking.
-            type: boolean
-          registration_dt:
-            description: >
-              The datetime of the user account registration. Not present for
-              anonymous users or if missing in the MW database.
-            type: string
-            format: date-time
-            maxLength: 128
-          user_id:
-            description: >
-              The user ID that performed this change.  This is optional, and
-              will not be present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          user_text:
-            description: >
-              The user name or text representation of the user that performed
-              this change.
-            type: string
-            minLength: 1
-        examples:
-          - edit_count: 1351079888211148
-            groups:
-              - dolor
-            is_bot: false
-            is_system: false
-            is_temp: false
-            registration_dt: '2021-01-01T00:00:00.0Z'
-            user_id: 1351079888211148
-            user_text: dolor
-      is_comment_visible:
-        description: >
-          Whether the comment of the revision is visible. See
-          RevisionRecord->DELETED_COMMENT.
-        type: boolean
-      is_content_visible:
-        description: >
-          Whether the revision's content body is visible. If this is false, then
-          content should be redacted. See RevisionRecord->DELETED_TEXT
-        type: boolean
-      is_editor_visible:
-        description: >
-          Whether the revision's editor information is visible. Affects editor
-          field. See RevisionRecord->DELETED_USER
-        type: boolean
-      is_minor_edit:
-        description: True if the editor marked this revision as a minor edit.
-        type: boolean
-      rev_dt:
-        description: >
-          Time this revision was created. This is rev_timestamp in the MediaWiki
-          database.
-        type: string
-        format: date-time
-        maxLength: 128
-      rev_id:
-        description: The (database) revision ID.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 1
-      rev_parent_id:
-        description: This revision's parent rev_id.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      rev_sha1:
-        description: |
-          sha1 sum considering all the content slots for this revision.
-        type: string
-      rev_size:
-        description: >
-          Byte size 'sum' of all the content slots for this revision. This
-          'size' is approximate, but may not be exact, depending on the kind of
-          data that is stored in the content slots.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - comment: dolor
-        editor:
-          edit_count: 1351079888211148
-          groups:
-            - dolor
-          is_bot: false
-          is_system: false
-          is_temp: false
-          registration_dt: '2021-01-01T00:00:00.0Z'
-          user_id: 1351079888211148
-          user_text: dolor
-        is_comment_visible: false
-        is_content_visible: false
-        is_editor_visible: false
-        is_minor_edit: false
-        rev_dt: '2021-01-01T00:00:00.0Z'
-        rev_id: 1351079888211149
-        rev_parent_id: 1351079888211148
-        rev_sha1: dolor
-        rev_size: 1351079888211148
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-examples:
-  - $schema: /mediawiki/page/prediction_classification_change/1.0.0
-    changelog_kind: update
-    comment: changed a thing
-    dt: '2021-01-01T00:00:00.0Z'
-    meta:
-      domain: examplewiki
-      dt: '2021-01-01T00:00:00.0Z'
-      stream: mediawiki.page_change
-    page:
-      is_redirect: false
-      namespace_id: 1
-      page_id: 1
-      page_title: example
-      revision_count: 1
-    page_change_kind: edit
-    performer:
-      user_id: 123
-      user_text: yoohoo
-    predicted_classification:
-      model_name: example_model
-      model_version: 1.0.1
-      predictions:
-        - 'yes'
-        - mostly
-      probabilities:
-        hardly: 0.01
-        mostly: 0.9
-        'yes': 0.99
-    revision:
-      comment: changed a thing
-      editor:
-        user_id: 123
-        user_text: example
-      is_comment_visible: true
-      is_content_visible: true
-      is_editor_visible: true
-      is_minor_edit: false
-      rev_dt: '2021-01-01T00:00:00.0Z'
-      rev_id: 2
-      rev_parent_id: 1
-      rev_sha1: 16619839a55cfb5c61bcf520bf9734e0c67f98cc
-      rev_size: 100
-    wiki_id: example
diff --git a/jsonschema/mediawiki/page/prediction_classification_change/1.1.0 b/jsonschema/mediawiki/page/prediction_classification_change/1.1.0
deleted file mode 120000
index ac6cab8..0000000
--- a/jsonschema/mediawiki/page/prediction_classification_change/1.1.0
+++ /dev/null
@@ -1 +0,0 @@
-1.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/prediction_classification_change/1.1.0.yaml b/jsonschema/mediawiki/page/prediction_classification_change/1.1.0.yaml
deleted file mode 100644
index 33f4b92..0000000
--- a/jsonschema/mediawiki/page/prediction_classification_change/1.1.0.yaml
+++ /dev/null
@@ -1,722 +0,0 @@
-title: mediawiki/page/prediction_classification_change
-description: >
-  Represents a classification model output (topic, revert, quality, etc.). -
-  topic model:
-  https://meta.wikimedia.org/wiki/Machine_learning_models/Production/Language_agnostic_link-based_article_topic_model_card
-  - quality model:
-  https://meta.wikimedia.org/wiki/Machine_learning_models/Proposed/Language-agnostic_Wikipedia_article_quality_model_card
-$id: /mediawiki/page/prediction_classification_change/1.1.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - changelog_kind
-  - dt
-  - meta
-  - page
-  - page_change_kind
-  - performer
-  - revision
-  - wiki_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  changelog_kind:
-    description: >
-      The kind of this event in a changelog. This is used to map the event to an
-      action in a data store.
-    type: string
-    enum:
-      - insert
-      - update
-      - delete
-  comment:
-    description: >
-      The comment left by the user that performed this change. Same as
-      revision.comment on edits.
-    type: string
-  created_redirect_page:
-    title: fragment/mediawiki/state/entity/page
-    description: >
-      Page entity that was created at the old title during a page move. This is
-      only set for page move events. Note that the created_redirect_page will
-      also have its own associated page create event.
-    $id: /fragment/mediawiki/state/entity/page/2.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      revision_count:
-        description: >
-          NOTE: revision_count is never set for created_redirect_page. It is
-          present here for backwards compatibility only.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page:
-    title: fragment/mediawiki/state/entity/page
-    description: Fields for MediaWiki page entity.
-    $id: /fragment/mediawiki/state/entity/page/2.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - page_id
-      - page_title
-    properties:
-      is_redirect:
-        description: True if the page is a redirect page at the time of this event.
-        type: boolean
-      namespace_id:
-        description: The id of the namespace this page belongs to.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_id:
-        description: The (database) page ID of the page.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      page_title:
-        description: The normalized title of the page.
-        type: string
-        minLength: 1
-      redirect_page_link:
-        title: fragment/mediawiki/state/entity/page_link
-        description: >
-          If this page is currently a redirect, then this field contains
-          information about the target page the redirect links to.
-        $id: /fragment/mediawiki/state/entity/page_link/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          interwiki_prefix:
-            description: >
-              The interwiki prefix (iw_prefix) of this link. The presence of
-              this prefix implies a target outside the local wiki. See
-              https://meta.wikimedia.org/wiki/Help:Interwiki_linking
-            type: string
-          is_redirect:
-            description: True if the page is a redirect page at the time of this event.
-            type: boolean
-          namespace_id:
-            description: The id of the namespace this page belongs to.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_id:
-            description: The (database) page ID of the page.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_title:
-            description: The normalized title of the page.
-            type: string
-            minLength: 1
-        examples:
-          - interwiki_prefix: dolor
-            is_redirect: false
-            namespace_id: 1351079888211148
-            page_id: 1351079888211148
-            page_title: dolor
-      revision_count:
-        description: >
-          The number of revisions of this page at the time of this event. During
-          a delete, this number of revisions will be archived. This field is
-          likely only set for page delete events, as getting this information on
-          all events is expensive.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - is_redirect: false
-        namespace_id: 1351079888211148
-        page_id: 1351079888211148
-        page_title: dolor
-  page_change_kind:
-    description: |
-      The origin kind of the change to this page as viewed by MediaWiki.
-    type: string
-    enum:
-      - create
-      - undelete
-      - edit
-      - move
-      - delete
-      - visibility_change
-  performer:
-    title: fragment/mediawiki/state/entity/user
-    description: >
-      Represents the MediaWiki actor that made this change. If this change is an
-      edit, this will be the same as revision.editor.
-    $id: /fragment/mediawiki/state/entity/user/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    properties:
-      edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      groups:
-        description: >
-          A list of the groups this user belongs to.  E.g. bot, sysop etc. Not
-          present for anonymous users.
-        type: array
-        items:
-          type: string
-          minLength: 1
-      is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      is_system:
-        description: >
-          True if the user is a MediaWiki 'system' user. These are users that
-          cannot 'authenticate'.  These are usually listed in ReservedUsernames.
-        type: boolean
-      is_temp:
-        description: >
-          True if the user is an autocreated temporary MediaWiki user. This is
-          used for IP masking.
-        type: boolean
-      registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_id:
-        description: >
-          The user ID that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_text:
-        description: >
-          The user name or text representation of the user that performed this
-          change.
-        type: string
-        minLength: 1
-    examples:
-      - edit_count: 1351079888211148
-        groups:
-          - dolor
-        is_bot: false
-        is_system: false
-        is_temp: false
-        registration_dt: '2021-01-01T00:00:00.0Z'
-        user_id: 1351079888211148
-        user_text: dolor
-  predicted_classification:
-    type: object
-    required:
-      - model_name
-      - model_version
-      - predictions
-      - probabilities
-    properties:
-      model_name:
-        description: The name of the classsification model used.
-        type: string
-      model_version:
-        description: The version of the classsification model used.
-        type: string
-      predictions:
-        description: A list of predictions made by this model.
-        type: array
-        items:
-          type: string
-      probabilities:
-        description: >
-          A list of probabilities made by this model. Each element is a
-          key/value with class name and associated [0-1] probability.
-        type: object
-        additionalProperties:
-          type: number
-          maximum: 9007199254740991
-          minimum: -9007199254740991
-  prior_state:
-    description: >
-      Prior state of this page before this event. Fields are only present if
-      their values have changed.
-    type: object
-    properties:
-      page:
-        title: fragment/mediawiki/state/entity/page
-        description: Fields for MediaWiki page entity.
-        $id: /fragment/mediawiki/state/entity/page/2.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          is_redirect:
-            description: True if the page is a redirect page at the time of this event.
-            type: boolean
-          namespace_id:
-            description: The id of the namespace this page belongs to.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_id:
-            description: The (database) page ID of the page.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          page_title:
-            description: The normalized title of the page.
-            type: string
-            minLength: 1
-          revision_count:
-            description: >
-              NOTE: prior_state.page.revision_count is unlikely to be set, as
-              getting the # of revisions previous to this change is difficult.
-              This field is present here for backwards compatibiliy.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - is_redirect: false
-            namespace_id: 1351079888211148
-            page_id: 1351079888211148
-            page_title: dolor
-      revision:
-        title: fragment/mediawiki/state/entity/revision
-        description: Fields for MediaWiki revision entity.
-        $id: /fragment/mediawiki/state/entity/revision/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          comment:
-            description: The comment left by the editor when this revision was made.
-            type: string
-          editor:
-            title: fragment/mediawiki/state/entity/user
-            description: Represents the MediaWiki user that made this edit.
-            $id: /fragment/mediawiki/state/entity/user/1.0.0
-            $schema: 'https://json-schema.org/draft-07/schema#'
-            type: object
-            additionalProperties: false
-            properties:
-              edit_count:
-                description: >
-                  The number of edits this user has made at the time of this
-                  event. Not present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              groups:
-                description: >
-                  A list of the groups this user belongs to.  E.g. bot, sysop
-                  etc. Not present for anonymous users.
-                type: array
-                items:
-                  type: string
-                  minLength: 1
-              is_bot:
-                description: >
-                  True if this user is considered to be a bot at the time of
-                  this event. This is checked via the $user->isBot() method,
-                  which considers both user_groups and user permissions.
-                type: boolean
-              is_system:
-                description: >
-                  True if the user is a MediaWiki 'system' user. These are users
-                  that cannot 'authenticate'.  These are usually listed in
-                  ReservedUsernames.
-                type: boolean
-              is_temp:
-                description: >
-                  True if the user is an autocreated temporary MediaWiki user.
-                  This is used for IP masking.
-                type: boolean
-              registration_dt:
-                description: >
-                  The datetime of the user account registration. Not present for
-                  anonymous users or if missing in the MW database.
-                type: string
-                format: date-time
-                maxLength: 128
-              user_id:
-                description: >
-                  The user ID that performed this change.  This is optional, and
-                  will not be present for anonymous users.
-                type: integer
-                maximum: 9007199254740991
-                minimum: 0
-              user_text:
-                description: >
-                  The user name or text representation of the user that
-                  performed this change.
-                type: string
-                minLength: 1
-            examples:
-              - edit_count: 1351079888211148
-                groups:
-                  - dolor
-                is_bot: false
-                is_system: false
-                is_temp: false
-                registration_dt: '2021-01-01T00:00:00.0Z'
-                user_id: 1351079888211148
-                user_text: dolor
-          is_comment_visible:
-            description: >
-              Whether the comment of the revision is visible. See
-              RevisionRecord->DELETED_COMMENT.
-            type: boolean
-          is_content_visible:
-            description: >
-              Whether the revision's content body is visible. If this is false,
-              then content should be redacted. See RevisionRecord->DELETED_TEXT
-            type: boolean
-          is_editor_visible:
-            description: >
-              Whether the revision's editor information is visible. Affects
-              editor field. See RevisionRecord->DELETED_USER
-            type: boolean
-          is_minor_edit:
-            description: True if the editor marked this revision as a minor edit.
-            type: boolean
-          rev_dt:
-            description: >
-              Time this revision was created. This is rev_timestamp in the
-              MediaWiki database.
-            type: string
-            format: date-time
-            maxLength: 128
-          rev_id:
-            description: The (database) revision ID.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 1
-          rev_parent_id:
-            description: This revision's parent rev_id.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          rev_sha1:
-            description: |
-              sha1 sum considering all the content slots for this revision.
-            type: string
-          rev_size:
-            description: >
-              Byte size 'sum' of all the content slots for this revision. This
-              'size' is approximate, but may not be exact, depending on the kind
-              of data that is stored in the content slots.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - comment: dolor
-            editor:
-              edit_count: 1351079888211148
-              groups:
-                - dolor
-              is_bot: false
-              is_system: false
-              is_temp: false
-              registration_dt: '2021-01-01T00:00:00.0Z'
-              user_id: 1351079888211148
-              user_text: dolor
-            is_comment_visible: false
-            is_content_visible: false
-            is_editor_visible: false
-            is_minor_edit: false
-            rev_dt: '2021-01-01T00:00:00.0Z'
-            rev_id: 1351079888211149
-            rev_parent_id: 1351079888211148
-            rev_sha1: dolor
-            rev_size: 1351079888211148
-  revision:
-    title: fragment/mediawiki/state/entity/revision
-    description: Fields for MediaWiki revision entity.
-    $id: /fragment/mediawiki/state/entity/revision/1.0.0
-    $schema: 'https://json-schema.org/draft-07/schema#'
-    type: object
-    additionalProperties: false
-    required:
-      - rev_id
-      - rev_dt
-    properties:
-      comment:
-        description: The comment left by the editor when this revision was made.
-        type: string
-      editor:
-        title: fragment/mediawiki/state/entity/user
-        description: Represents the MediaWiki user that made this edit.
-        $id: /fragment/mediawiki/state/entity/user/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        properties:
-          edit_count:
-            description: >
-              The number of edits this user has made at the time of this event.
-              Not present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          groups:
-            description: >
-              A list of the groups this user belongs to.  E.g. bot, sysop etc.
-              Not present for anonymous users.
-            type: array
-            items:
-              type: string
-              minLength: 1
-          is_bot:
-            description: >
-              True if this user is considered to be a bot at the time of this
-              event. This is checked via the $user->isBot() method, which
-              considers both user_groups and user permissions.
-            type: boolean
-          is_system:
-            description: >
-              True if the user is a MediaWiki 'system' user. These are users
-              that cannot 'authenticate'.  These are usually listed in
-              ReservedUsernames.
-            type: boolean
-          is_temp:
-            description: >
-              True if the user is an autocreated temporary MediaWiki user. This
-              is used for IP masking.
-            type: boolean
-          registration_dt:
-            description: >
-              The datetime of the user account registration. Not present for
-              anonymous users or if missing in the MW database.
-            type: string
-            format: date-time
-            maxLength: 128
-          user_id:
-            description: >
-              The user ID that performed this change.  This is optional, and
-              will not be present for anonymous users.
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          user_text:
-            description: >
-              The user name or text representation of the user that performed
-              this change.
-            type: string
-            minLength: 1
-        examples:
-          - edit_count: 1351079888211148
-            groups:
-              - dolor
-            is_bot: false
-            is_system: false
-            is_temp: false
-            registration_dt: '2021-01-01T00:00:00.0Z'
-            user_id: 1351079888211148
-            user_text: dolor
-      is_comment_visible:
-        description: >
-          Whether the comment of the revision is visible. See
-          RevisionRecord->DELETED_COMMENT.
-        type: boolean
-      is_content_visible:
-        description: >
-          Whether the revision's content body is visible. If this is false, then
-          content should be redacted. See RevisionRecord->DELETED_TEXT
-        type: boolean
-      is_editor_visible:
-        description: >
-          Whether the revision's editor information is visible. Affects editor
-          field. See RevisionRecord->DELETED_USER
-        type: boolean
-      is_minor_edit:
-        description: True if the editor marked this revision as a minor edit.
-        type: boolean
-      rev_dt:
-        description: >
-          Time this revision was created. This is rev_timestamp in the MediaWiki
-          database.
-        type: string
-        format: date-time
-        maxLength: 128
-      rev_id:
-        description: The (database) revision ID.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 1
-      rev_parent_id:
-        description: This revision's parent rev_id.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      rev_sha1:
-        description: |
-          sha1 sum considering all the content slots for this revision.
-        type: string
-      rev_size:
-        description: >
-          Byte size 'sum' of all the content slots for this revision. This
-          'size' is approximate, but may not be exact, depending on the kind of
-          data that is stored in the content slots.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-    examples:
-      - comment: dolor
-        editor:
-          edit_count: 1351079888211148
-          groups:
-            - dolor
-          is_bot: false
-          is_system: false
-          is_temp: false
-          registration_dt: '2021-01-01T00:00:00.0Z'
-          user_id: 1351079888211148
-          user_text: dolor
-        is_comment_visible: false
-        is_content_visible: false
-        is_editor_visible: false
-        is_minor_edit: false
-        rev_dt: '2021-01-01T00:00:00.0Z'
-        rev_id: 1351079888211149
-        rev_parent_id: 1351079888211148
-        rev_sha1: dolor
-        rev_size: 1351079888211148
-  wiki_id:
-    description: >
-      The wiki ID, which is usually the same as the MediaWiki database name.
-      E.g. enwiki, metawiki, etc.
-    type: string
-    minLength: 1
-examples:
-  - $schema: /mediawiki/page/prediction_classification_change/1.1.0
-    changelog_kind: update
-    comment: changed a thing
-    dt: '2021-01-01T00:00:00.0Z'
-    meta:
-      domain: examplewiki
-      dt: '2021-01-01T00:00:00.0Z'
-      stream: mediawiki.page_change
-    page:
-      is_redirect: true
-      namespace_id: 1
-      page_id: 1
-      page_title: example
-      redirect_page_link:
-        is_redirect: false
-        namespace_id: 1
-        page_id: 2
-        page_title: Redirect_Target
-      revision_count: 1
-    page_change_kind: edit
-    performer:
-      user_id: 123
-      user_text: yoohoo
-    predicted_classification:
-      model_name: example_model
-      model_version: 1.0.1
-      predictions:
-        - 'yes'
-        - mostly
-      probabilities:
-        hardly: 0.01
-        mostly: 0.9
-        'yes': 0.99
-    revision:
-      comment: changed a thing
-      editor:
-        user_id: 123
-        user_text: example
-      is_comment_visible: true
-      is_content_visible: true
-      is_editor_visible: true
-      is_minor_edit: false
-      rev_dt: '2021-01-01T00:00:00.0Z'
-      rev_id: 2
-      rev_parent_id: 1
-      rev_sha1: 16619839a55cfb5c61bcf520bf9734e0c67f98cc
-      rev_size: 100
-    wiki_id: example
-definitions:
-  revision_count:
-    description: >
-      The number of revisions of this page at the time of this event. During a
-      delete, this number of revisions will be archived. This field is likely
-      only set for page delete events, as getting this information on all events
-      is expensive.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
diff --git a/jsonschema/mediawiki/page/prediction_classification_change/current.yaml b/jsonschema/mediawiki/page/prediction_classification_change/current.yaml
deleted file mode 100644
index 79b449b..0000000
--- a/jsonschema/mediawiki/page/prediction_classification_change/current.yaml
+++ /dev/null
@@ -1,91 +0,0 @@
-title: mediawiki/page/prediction_classification_change
-description: >
-  Represents a classification model output (topic, revert, quality, etc.).
-  - topic model: https://meta.wikimedia.org/wiki/Machine_learning_models/Production/Language_agnostic_link-based_article_topic_model_card
-  - quality model: https://meta.wikimedia.org/wiki/Machine_learning_models/Proposed/Language-agnostic_Wikipedia_article_quality_model_card
-
-$id: /mediawiki/page/prediction_classification_change/1.1.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-allOf:
-  - $ref: /fragment/common/2.0.0#
-  - $ref: /fragment/mediawiki/state/change/page/1.1.0
-
-properties:
-  predicted_classification:
-    type: object
-    properties:
-      model_name:
-        description: The name of the classsification model used.
-        type: string
-      model_version:
-        description: The version of the classsification model used.
-        type: string
-      predictions:
-        description: A list of predictions made by this model.
-        type: array
-        items:
-          type: string
-      probabilities:
-        description: >
-          A list of probabilities made by this model.
-          Each element is a key/value with class name and associated [0-1] probability.
-        type: object
-        additionalProperties:
-          type: number
-    required:
-      - model_name
-      - model_version
-      - predictions
-      - probabilities
-
-examples:
-  - $schema: { $ref: '#/$id' }
-    dt: '2021-01-01T00:00:00.0Z'
-    meta:
-      domain: examplewiki
-      dt: '2021-01-01T00:00:00.0Z'
-      stream: mediawiki.page_change
-    changelog_kind: update
-    page_change_kind: edit
-    wiki_id: example
-    comment: changed a thing
-    page:
-      namespace_id: 1
-      page_id: 1
-      page_title: example
-      revision_count: 1
-      is_redirect: true
-      redirect_page_link:
-        page_id: 2
-        is_redirect: false
-        page_title: Redirect_Target
-        namespace_id: 1
-    performer:
-      user_id: 123
-      user_text: yoohoo
-    revision:
-      rev_dt: '2021-01-01T00:00:00.0Z'
-      rev_id: 2
-      rev_parent_id: 1
-      rev_sha1: 16619839a55cfb5c61bcf520bf9734e0c67f98cc
-      rev_size: 100
-      comment: changed a thing
-      editor:
-        user_id: 123
-        user_text: example
-      is_minor_edit: false
-      is_comment_visible: true
-      is_content_visible: true
-      is_editor_visible: true
-    predicted_classification:
-      model_name: example_model
-      model_version: 1.0.1
-      predictions:
-      - yes
-      - mostly
-      probabilities:
-        yes: 0.99
-        mostly: 0.9
-        hardly: 0.01
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/prediction_classification_change/latest b/jsonschema/mediawiki/page/prediction_classification_change/latest
deleted file mode 120000
index ac6cab8..0000000
--- a/jsonschema/mediawiki/page/prediction_classification_change/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/prediction_classification_change/latest.yaml b/jsonschema/mediawiki/page/prediction_classification_change/latest.yaml
deleted file mode 120000
index ac6cab8..0000000
--- a/jsonschema/mediawiki/page/prediction_classification_change/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/properties-change/1.0.0 b/jsonschema/mediawiki/page/properties-change/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/properties-change/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/properties-change/1.0.0.yaml b/jsonschema/mediawiki/page/properties-change/1.0.0.yaml
deleted file mode 100644
index 827c1c3..0000000
--- a/jsonschema/mediawiki/page/properties-change/1.0.0.yaml
+++ /dev/null
@@ -1,150 +0,0 @@
-title: mediawiki/page/properties-change
-description: Represents a MW Page Properties Change event.
-$id: /mediawiki/page/properties-change/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  added_properties:
-    description: >
-      The new page properties. This map would only contain properties that were
-      either added or changed, properties that were intact would not be present
-      here. If the property was changed, its previous value would be present in
-      the 'removed_properties' object.
-    type: object
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The (database) page ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_is_redirect:
-    description: >
-      True if this page is currently a redirect page.  This fact is ultimately
-      represented by revision content containing redirect wikitext.  If rev_id's
-      content has redirect wikitext, then this page is a redirect.  Note that
-      this state is also stored on the Mediawiki page table.
-    type: boolean
-  page_namespace:
-    description: The namespace ID this page belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  removed_properties:
-    description: >
-      The old page properties. This map would only contain the previous values
-      of the properties that were either removed or changed by this event.
-      Properties that were intact would not be present here. If the property was
-      changed, its new value would be present in the 'added_properties' object.
-    type: object
-  rev_id:
-    description: The head revision of the page at the time of this event.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-examples:
-  - $schema: /mediawiki/page/properties-change/1.0.0
-    database: examplewiki
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: medaiwiki.page-properties-change
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: example_page_title
-    rev_id: 123
diff --git a/jsonschema/mediawiki/page/properties-change/CHANGELOG.md b/jsonschema/mediawiki/page/properties-change/CHANGELOG.md
deleted file mode 100644
index 22a34e8..0000000
--- a/jsonschema/mediawiki/page/properties-change/CHANGELOG.md
+++ /dev/null
@@ -1,5 +0,0 @@
-### Version 1.0.0
- - Updated to draft-07 new schema conventions.
-
- ### Version 2
- - Added `minLength: 1` for required string properties.
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/properties-change/current.yaml b/jsonschema/mediawiki/page/properties-change/current.yaml
deleted file mode 100644
index 6502f2b..0000000
--- a/jsonschema/mediawiki/page/properties-change/current.yaml
+++ /dev/null
@@ -1,36 +0,0 @@
-title: mediawiki/page/properties-change
-description: Represents a MW Page Properties Change event.
-$id: /mediawiki/page/properties-change/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/mediawiki/page/common/1.0.0#
-  - properties:
-      removed_properties:
-        description: >
-          The old page properties. This map would only contain the previous
-          values of the properties that were either removed or changed by
-          this event. Properties that were intact would not be present here.
-          If the property was changed, its new value would be present in the
-          'added_properties' object.
-        type: object
-
-      added_properties:
-        description: >
-          The new page properties. This map would only contain properties that
-          were either added or changed, properties that were intact would not
-          be present here. If the property was changed, its previous value would
-          be present in the 'removed_properties' object.
-        type: object
-
-examples:
-  - $schema: { $ref: '#/$id' }
-    meta:
-      stream: medaiwiki.page-properties-change
-      dt: '2020-07-01T00:00:00Z'
-    database: examplewiki
-    page_id: 123
-    page_title: example_page_title
-    page_is_redirect: false
-    page_namespace: 0
-    rev_id: 123
diff --git a/jsonschema/mediawiki/page/properties-change/latest b/jsonschema/mediawiki/page/properties-change/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/properties-change/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/properties-change/latest.yaml b/jsonschema/mediawiki/page/properties-change/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/properties-change/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/restrictions-change/1.0.0 b/jsonschema/mediawiki/page/restrictions-change/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/restrictions-change/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/restrictions-change/1.0.0.yaml b/jsonschema/mediawiki/page/restrictions-change/1.0.0.yaml
deleted file mode 100644
index 74f8ab3..0000000
--- a/jsonschema/mediawiki/page/restrictions-change/1.0.0.yaml
+++ /dev/null
@@ -1,161 +0,0 @@
-title: mediawiki/page/restrictions-change
-description: Represents a MW Page Restrictions Change event.
-$id: /mediawiki/page/restrictions-change/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - reason
-  - rev_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The (database) page ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_is_redirect:
-    description: >
-      True if this page is currently a redirect page.  This fact is ultimately
-      represented by revision content containing redirect wikitext.  If rev_id's
-      content has redirect wikitext, then this page is a redirect.  Note that
-      this state is also stored on the Mediawiki page table.
-    type: boolean
-  page_namespace:
-    description: The namespace ID this page belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_restrictions:
-    description: >
-      The new restrictions applied to the page. If one of the properties is
-      present, that means the specific action has been restricted to a member of
-      a specific user group. An empty string means that a particular action is
-      not restricted.
-    type: object
-    additionalProperties:
-      type: string
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  prior_state:
-    description: >
-      The prior state of the entity before this event. If a top level entity
-      field is not present in this object, then its value has not changed since
-      the prior event.
-    type: object
-    properties:
-      page_restrictions:
-        type: object
-        additionalProperties:
-          type: string
-  reason:
-    description: Explanation of the reason for protecting the page.
-    type: string
-  rev_id:
-    description: The head revision of the page at the time of this event.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-examples:
-  - $schema: /mediawiki/page/restrictions-change/1.0.0
-    database: examplewiki
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: medaiwiki.page-restrictions-change
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: example_page_title
-    reason: example_reason
-    rev_id: 123
diff --git a/jsonschema/mediawiki/page/restrictions-change/CHANGELOG.md b/jsonschema/mediawiki/page/restrictions-change/CHANGELOG.md
deleted file mode 100644
index 9be2786..0000000
--- a/jsonschema/mediawiki/page/restrictions-change/CHANGELOG.md
+++ /dev/null
@@ -1,5 +0,0 @@
-### Version 1.0.0
- - Updated to draft-07 new schema conventions.
-
-### Version 2
- - Added `minLength: 1` for required string properties.
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/restrictions-change/current.yaml b/jsonschema/mediawiki/page/restrictions-change/current.yaml
deleted file mode 100644
index 1c1ac28..0000000
--- a/jsonschema/mediawiki/page/restrictions-change/current.yaml
+++ /dev/null
@@ -1,51 +0,0 @@
-title: mediawiki/page/restrictions-change
-description: Represents a MW Page Restrictions Change event.
-$id: /mediawiki/page/restrictions-change/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/mediawiki/page/common/1.0.0#
-  - properties:
-      page_restrictions:
-        description: >
-          The new restrictions applied to the page. If one of the properties is present,
-          that means the specific action has been restricted to a member of a specific
-          user group. An empty string means that a particular action is not restricted.
-        type: object
-        additionalProperties:
-          type: string
-
-      reason:
-        type: string
-        description: Explanation of the reason for protecting the page.
-
-      prior_state:
-        description: >
-          The prior state of the entity before this event. If a top level entity
-          field is not present in this object, then its value has not changed
-          since the prior event.
-        type: object
-        properties:
-          page_restrictions:
-            type: object
-            additionalProperties:
-              type: string
-
-required:
-  - reason
-
-examples:
-  - $schema: { $ref: '#/$id' }
-    meta:
-      stream: medaiwiki.page-restrictions-change
-      dt: '2020-07-01T00:00:00Z'
-    database: examplewiki
-    page_id: 123
-    page_title: example_page_title
-    page_is_redirect: false
-    page_namespace: 0
-    rev_id: 123
-    reason: example_reason
-
-
-
diff --git a/jsonschema/mediawiki/page/restrictions-change/latest b/jsonschema/mediawiki/page/restrictions-change/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/restrictions-change/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/restrictions-change/latest.yaml b/jsonschema/mediawiki/page/restrictions-change/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/restrictions-change/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/undelete/1.0.0 b/jsonschema/mediawiki/page/undelete/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/undelete/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/undelete/1.0.0.yaml b/jsonschema/mediawiki/page/undelete/1.0.0.yaml
deleted file mode 100644
index a819f7a..0000000
--- a/jsonschema/mediawiki/page/undelete/1.0.0.yaml
+++ /dev/null
@@ -1,167 +0,0 @@
-title: mediawiki/page/undelete
-description: Represents a MW Page Undelete (restore) event.
-$id: /mediawiki/page/undelete/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  chronology_id:
-    description: Deprecated - no longer populated
-    type: string
-  comment:
-    description: The comment left by the user that performed this change.
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The (database) page ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  page_is_redirect:
-    description: >
-      True if this page is currently a redirect page.  This fact is ultimately
-      represented by revision content containing redirect wikitext.  If rev_id's
-      content has redirect wikitext, then this page is a redirect.  Note that
-      this state is also stored on the Mediawiki page table.
-    type: boolean
-  page_namespace:
-    description: The namespace ID this page belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page.
-    type: string
-    minLength: 1
-  parsedcomment:
-    description: >
-      The comment left by the user that performed this change parsed into simple
-      HTML. Optional
-    type: string
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  prior_state:
-    description: >
-      The prior state of the entity before this event. If a top level entity
-      field is not present in this object, then its value has not changed since
-      the prior event.  If prior_state itself is not present, then this event
-      had no relevant prior state, indicating that it is probably the first time
-      this type has been emitted for this entity. For page undeletes,
-      prior_state will be absent unless the page_id is no longer the same as the
-      page_id it had before it was deleted.
-    type: object
-    required:
-      - page_id
-    properties:
-      page_id:
-        description: The page ID before this restore as it was in the archive table.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 1
-  rev_id:
-    description: The head revision of the page at the time of this event.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-examples:
-  - $schema: /mediawiki/page/undelete/1.0.0
-    database: examplewiki
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: medaiwiki.page-undelete
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: example_page_title
-    prior_state:
-      page_id: 123
-    rev_id: 123
diff --git a/jsonschema/mediawiki/page/undelete/CHANGELOG.md b/jsonschema/mediawiki/page/undelete/CHANGELOG.md
deleted file mode 100644
index 80309ff..0000000
--- a/jsonschema/mediawiki/page/undelete/CHANGELOG.md
+++ /dev/null
@@ -1,11 +0,0 @@
-### Version 1.0.0
- - Updated to draft-07 new schema conventions.
-
-### Version 4
- - Added `chronology_id` field.
-
-### Version 3
- - Added `minLength: 1` for required string properties.
-
-### Version 2
- - Added `parsedcomment` optional field.
diff --git a/jsonschema/mediawiki/page/undelete/current.yaml b/jsonschema/mediawiki/page/undelete/current.yaml
deleted file mode 100644
index af964d6..0000000
--- a/jsonschema/mediawiki/page/undelete/current.yaml
+++ /dev/null
@@ -1,56 +0,0 @@
-title: mediawiki/page/undelete
-description: Represents a MW Page Undelete (restore) event.
-$id: /mediawiki/page/undelete/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/mediawiki/page/common/1.0.0#
-  - properties:
-      chronology_id:
-        description: Deprecated - no longer populated
-        type: string
-
-      comment:
-        description: The comment left by the user that performed this change.
-        type: string
-
-      parsedcomment:
-        description: >
-          The comment left by the user that performed this change
-          parsed into simple HTML. Optional
-        type: string
-
-      prior_state:
-        description: >
-          The prior state of the entity before this event. If a top level entity
-          field is not present in this object, then its value has not changed
-          since the prior event.  If prior_state itself is not present, then
-          this event had no relevant prior state, indicating that it is probably
-          the first time this type has been emitted for this entity.
-          For page undeletes, prior_state will be absent unless the page_id is no
-          longer the same as the page_id it had before it was deleted.
-        type: object
-        properties:
-          page_id:
-            description: The page ID before this restore as it was in the archive table.
-            type: integer
-            minimum: 1
-        required:
-          - page_id
-
-examples:
-  - $schema: { $ref: '#/$id' }
-    meta:
-      stream: medaiwiki.page-undelete
-      dt: '2020-07-01T00:00:00Z'
-    database: examplewiki
-    page_id: 123
-    page_title: example_page_title
-    page_is_redirect: false
-    page_namespace: 0
-    rev_id: 123
-    prior_state:
-      page_id: 123
-
-
-
diff --git a/jsonschema/mediawiki/page/undelete/latest b/jsonschema/mediawiki/page/undelete/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/undelete/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/page/undelete/latest.yaml b/jsonschema/mediawiki/page/undelete/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/page/undelete/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/recentchange/1.0.0 b/jsonschema/mediawiki/recentchange/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/recentchange/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/recentchange/1.0.0.yaml b/jsonschema/mediawiki/recentchange/1.0.0.yaml
deleted file mode 100644
index 8985f4c..0000000
--- a/jsonschema/mediawiki/recentchange/1.0.0.yaml
+++ /dev/null
@@ -1,161 +0,0 @@
-title: mediawiki/recentchange
-description: >
-  Represents a MW RecentChange event.
-  https://www.mediawiki.org/wiki/Manual:RCFeed
-$id: /mediawiki/recentchange/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: true
-required:
-  - $schema
-  - meta
-properties:
-  title:
-    description: 'Full page name, from Title::getPrefixedText.'
-    type: string
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  type:
-    description: >
-      Type of recentchange event (rc_type). One of "edit", "new", "log",
-      "categorize", or "external". (See Manual:Recentchanges table#rc_type)
-    type: string
-  bot:
-    description: (rc_bot)
-    type: boolean
-  comment:
-    description: (rc_comment)
-    type: string
-  id:
-    description: ID of the recentchange event (rcid).
-    type:
-      - integer
-      - 'null'
-  length:
-    description: Length of old and new change
-    type: object
-    properties:
-      new:
-        description: (rc_new_len)
-        type:
-          - integer
-          - 'null'
-      old:
-        description: (rc_old_len)
-        type:
-          - integer
-          - 'null'
-  log_action:
-    description: (rc_log_action)
-    type: string
-  log_action_comment:
-    type:
-      - string
-      - 'null'
-  log_id:
-    description: (rc_log_id)
-    type:
-      - integer
-      - 'null'
-  log_params:
-    description: Property only exists if event has rc_params.
-    type:
-      - array
-      - object
-      - string
-    additionalProperties: true
-  log_type:
-    description: (rc_log_type)
-    type:
-      - string
-      - 'null'
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  minor:
-    description: (rc_minor).
-    type: boolean
-  namespace:
-    description: >
-      ID of relevant namespace of affected page (rc_namespace, page_namespace).
-      This is -1 ("Special") for log events.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  parsedcomment:
-    description: The rc_comment parsed into simple HTML. Optional
-    type: string
-  patrolled:
-    description: >
-      (rc_patrolled). This property only exists if patrolling is supported for
-      this event (based on $wgUseRCPatrol, $wgUseNPPatrol).
-    type: boolean
-  revision:
-    description: Old and new revision IDs
-    type: object
-    properties:
-      new:
-        description: (rc_last_oldid)
-        type:
-          - integer
-          - 'null'
-      old:
-        description: (rc_this_oldid)
-        type:
-          - integer
-          - 'null'
-  server_name:
-    description: $wgServerName
-    type: string
-  server_script_path:
-    description: $wgScriptPath
-    type: string
-  server_url:
-    description: $wgCanonicalServer
-    type: string
-  timestamp:
-    description: Unix timestamp (derived from rc_timestamp).
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  user:
-    description: (rc_user_text)
-    type: string
-  wiki:
-    description: 'wfWikiID ($wgDBprefix, $wgDBname)'
-    type: string
-examples:
-  - $schema: /mediawiki/recentchange/1.0.0
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: mediawiki.recentchange
diff --git a/jsonschema/mediawiki/recentchange/1.0.1 b/jsonschema/mediawiki/recentchange/1.0.1
deleted file mode 120000
index 945e609..0000000
--- a/jsonschema/mediawiki/recentchange/1.0.1
+++ /dev/null
@@ -1 +0,0 @@
-1.0.1.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/recentchange/1.0.1.yaml b/jsonschema/mediawiki/recentchange/1.0.1.yaml
deleted file mode 100644
index 3aff63c..0000000
--- a/jsonschema/mediawiki/recentchange/1.0.1.yaml
+++ /dev/null
@@ -1,162 +0,0 @@
-title: mediawiki/recentchange
-description: >
-  Represents a MW RecentChange event.
-  https://www.mediawiki.org/wiki/Manual:RCFeed
-$id: /mediawiki/recentchange/1.0.1
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: true
-required:
-  - $schema
-  - meta
-properties:
-  title:
-    description: 'Full page name, from Title::getPrefixedText.'
-    type: string
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  type:
-    description: >
-      Type of recentchange event (rc_type). One of "edit", "new", "log",
-      "categorize", or "external"; or a number. (See Manual:Recentchanges
-      table#rc_type)
-    type: string
-  bot:
-    description: (rc_bot)
-    type: boolean
-  comment:
-    description: (rc_comment)
-    type: string
-  id:
-    description: ID of the recentchange event (rcid).
-    type:
-      - integer
-      - 'null'
-  length:
-    description: Length of old and new change
-    type: object
-    properties:
-      new:
-        description: (rc_new_len)
-        type:
-          - integer
-          - 'null'
-      old:
-        description: (rc_old_len)
-        type:
-          - integer
-          - 'null'
-  log_action:
-    description: (rc_log_action)
-    type: string
-  log_action_comment:
-    type:
-      - string
-      - 'null'
-  log_id:
-    description: (rc_log_id)
-    type:
-      - integer
-      - 'null'
-  log_params:
-    description: Property only exists if event has rc_params.
-    type:
-      - array
-      - object
-      - string
-    additionalProperties: true
-  log_type:
-    description: (rc_log_type)
-    type:
-      - string
-      - 'null'
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  minor:
-    description: (rc_minor).
-    type: boolean
-  namespace:
-    description: >
-      ID of relevant namespace of affected page (rc_namespace, page_namespace).
-      This is -1 ("Special") for log events.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  parsedcomment:
-    description: The rc_comment parsed into simple HTML. Optional
-    type: string
-  patrolled:
-    description: >
-      (rc_patrolled). This property only exists if patrolling is supported for
-      this event (based on $wgUseRCPatrol, $wgUseNPPatrol).
-    type: boolean
-  revision:
-    description: Old and new revision IDs
-    type: object
-    properties:
-      new:
-        description: (rc_last_oldid)
-        type:
-          - integer
-          - 'null'
-      old:
-        description: (rc_this_oldid)
-        type:
-          - integer
-          - 'null'
-  server_name:
-    description: $wgServerName
-    type: string
-  server_script_path:
-    description: $wgScriptPath
-    type: string
-  server_url:
-    description: $wgCanonicalServer
-    type: string
-  timestamp:
-    description: Unix timestamp (derived from rc_timestamp).
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  user:
-    description: (rc_user_text)
-    type: string
-  wiki:
-    description: 'wfWikiID ($wgDBprefix, $wgDBname)'
-    type: string
-examples:
-  - $schema: /mediawiki/recentchange/1.0.1
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: mediawiki.recentchange
diff --git a/jsonschema/mediawiki/recentchange/CHANGELOG.md b/jsonschema/mediawiki/recentchange/CHANGELOG.md
deleted file mode 100644
index 22a34e8..0000000
--- a/jsonschema/mediawiki/recentchange/CHANGELOG.md
+++ /dev/null
@@ -1,5 +0,0 @@
-### Version 1.0.0
- - Updated to draft-07 new schema conventions.
-
- ### Version 2
- - Added `minLength: 1` for required string properties.
\ No newline at end of file
diff --git a/jsonschema/mediawiki/recentchange/current.yaml b/jsonschema/mediawiki/recentchange/current.yaml
deleted file mode 100644
index 16d9dd8..0000000
--- a/jsonschema/mediawiki/recentchange/current.yaml
+++ /dev/null
@@ -1,136 +0,0 @@
-title: mediawiki/recentchange
-description: >
-  Represents a MW RecentChange event.
-  https://www.mediawiki.org/wiki/Manual:RCFeed
-$id: /mediawiki/recentchange/1.0.1
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/common/1.0.0#
-  - properties:
-      ### Fields common to all recentchange events
-      id:
-        description: ID of the recentchange event (rcid).
-        type: [integer, "null"]
-
-      type:
-        description: >
-          Type of recentchange event (rc_type). One of "edit", "new", "log",
-          "categorize", or "external"; or a number. (See Manual:Recentchanges table#rc_type)
-        type: string
-
-      title:
-        description: Full page name, from Title::getPrefixedText.
-        type: string
-
-      namespace:
-        description: >
-          ID of relevant namespace of affected page (rc_namespace, page_namespace).
-          This is -1 ("Special") for log events.
-        type: integer
-
-      comment:
-        description: (rc_comment)
-        type: string
-
-      parsedcomment:
-        description: The rc_comment parsed into simple HTML. Optional
-        type: string
-
-      timestamp:
-        description: Unix timestamp (derived from rc_timestamp).
-        type: integer
-
-      user:
-        description: (rc_user_text)
-        type: string
-
-      bot:
-        description: (rc_bot)
-        type: boolean
-
-      server_url:
-        description: $wgCanonicalServer
-        type: string
-
-      server_name:
-        description: $wgServerName
-        type: string
-
-      server_script_path:
-        description: $wgScriptPath
-        type: string
-
-      wiki:
-        description: wfWikiID ($wgDBprefix, $wgDBname)
-        type: string
-
-
-      ### Edit event related fields
-      minor:
-        description: (rc_minor).
-        type: boolean
-
-      patrolled:
-        description: >
-          (rc_patrolled). This property only exists if patrolling is supported
-          for this event (based on $wgUseRCPatrol, $wgUseNPPatrol).
-        type: boolean
-
-      length:
-        description: Length of old and new change
-        type: object
-        properties:
-          old:
-            description: (rc_old_len)
-            type: [integer, "null"]
-          new:
-            description: (rc_new_len)
-            type: [integer, "null"]
-
-      revision:
-        description: Old and new revision IDs
-        type: object
-        properties:
-          new:
-            description: (rc_last_oldid)
-            type: [integer, "null"]
-          old:
-            description: (rc_this_oldid)
-            type: [integer, "null"]
-
-
-      ### Log event related fields
-      log_id:
-        description: (rc_log_id)
-        type: [integer, "null"]
-
-      log_type:
-        description: (rc_log_type)
-        type: [string, "null"]
-
-      log_action:
-        description: (rc_log_action)
-        type: string
-
-      log_params:
-        description: Property only exists if event has rc_params.
-        type: [array, object, string]
-        additionalProperties: true
-
-      log_action_comment:
-        type: [string, "null"]
-
-# Since recentchanges has existed before we began enforcing real JSON schemas,
-# we do not require any fields (other than meta), and do not invalidate if additional
-# properties are added.  This means that almost any schema (with a meta object) will
-# validate, but it allows us to be flexible and backwards compatible with unknown edge cases
-# where a recentchange event might look different than officially documented
-# at https://www.mediawiki.org/wiki/Manual:RCFeed.
-additionalProperties: true
-
-examples:
-  - $schema: { $ref: '#/$id' }
-    meta:
-      stream: mediawiki.recentchange
-      dt: '2020-07-01T00:00:00Z'
diff --git a/jsonschema/mediawiki/recentchange/latest b/jsonschema/mediawiki/recentchange/latest
deleted file mode 120000
index 945e609..0000000
--- a/jsonschema/mediawiki/recentchange/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.1.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/recentchange/latest.yaml b/jsonschema/mediawiki/recentchange/latest.yaml
deleted file mode 120000
index 945e609..0000000
--- a/jsonschema/mediawiki/recentchange/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.1.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/create/1.0.0 b/jsonschema/mediawiki/revision/create/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/revision/create/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/create/1.0.0.yaml b/jsonschema/mediawiki/revision/create/1.0.0.yaml
deleted file mode 100644
index 9ccde7c..0000000
--- a/jsonschema/mediawiki/revision/create/1.0.0.yaml
+++ /dev/null
@@ -1,196 +0,0 @@
-title: mediawiki/revision/create
-description: Represents a MW Revision Create event.
-$id: /mediawiki/revision/create/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-  - rev_timestamp
-properties:
-  rev_parent_id:
-    description: The parent revison ID of the revision that this event represents.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-  page_id:
-    description: The page ID of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  page_title:
-    description: The normalized title of the page this revision belongs to.
-    type: string
-    minLength: 1
-  page_namespace:
-    description: The namespace of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This fact is ultimately represented
-      by revision content containing redirect wikitext.  If this revision is the
-      head revision of the page, then the page will also be a redirect.
-    type: boolean
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      uri:
-        type: string
-        format: uri-reference
-        maxLength: 8192
-        description: Unique URI identifying the event or entity
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      id:
-        description: Unique ID of this event
-        type: string
-      dt:
-        type: string
-        format: date-time
-        maxLength: 128
-        description: 'UTC event datetime, in ISO-8601 format'
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-  rev_timestamp:
-    description: >
-      The revision's creation time in ISO8601 format.  This field does not end
-      in '_dt' to better match the field name on the Mediawiki revision table.
-    type: string
-    format: date-time
-    maxLength: 128
-  chronology_id:
-    description: Chonology Protector client ID.
-    type: string
-  comment:
-    description: The comment left by the user that performed this change.
-    type: string
-  parsedcomment:
-    description: >
-      The comment left by the user that performed this change parsed into simple
-      HTML. Optional
-    type: string
-  rev_sha1:
-    description: The sha1 of the revision text.
-    type: string
-  rev_len:
-    description: The length of the revision text in bytes.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  rev_minor_edit:
-    description: Flag identifying if the revision is minor.
-    type: boolean
-  rev_content_model:
-    description: The content model of the revision.
-    type: string
-  rev_content_format:
-    description: The content format of the revision.
-    type: string
-examples:
-  - rev_sha1: mr0szy90m5qbn6tek7ch3nebaild3tm
-    $schema: /mediawiki/revision/create/1.0.0
-    database: examplewiki
-    page_id: 123
-    page_title: TestPage10
-    page_namespace: 0
-    rev_id: 123
-    rev_timestamp: '2020-06-10T18:57:16Z'
-    meta:
-      uri: 'https://examplewiki.wikipedia.org/wiki/TestPage10'
-      dt: '2020-06-10T18:57:16Z'
-      domain: test.wikipedia.org
-      stream: mediawiki.revision-create
-    rev_minor_edit: false
-    rev_len: 3
-    rev_content_model: wikitext
-    rev_content_format: text/x-wiki
-    performer:
-      user_text: example_user_text
-      user_groups:
-        - '*'
-        - user
-        - autoconfirmed
-      user_is_bot: false
-      user_id: 123
-      user_registration_dt: '2016-01-29T21:13:24Z'
-      user_edit_count: 1
-    page_is_redirect: false
-    rev_parent_id: 122
-    rev_content_changed: true
diff --git a/jsonschema/mediawiki/revision/create/1.1.0 b/jsonschema/mediawiki/revision/create/1.1.0
deleted file mode 120000
index ac6cab8..0000000
--- a/jsonschema/mediawiki/revision/create/1.1.0
+++ /dev/null
@@ -1 +0,0 @@
-1.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/create/1.1.0.yaml b/jsonschema/mediawiki/revision/create/1.1.0.yaml
deleted file mode 100644
index 8b74beb..0000000
--- a/jsonschema/mediawiki/revision/create/1.1.0.yaml
+++ /dev/null
@@ -1,274 +0,0 @@
-title: mediawiki/revision/create
-description: Represents a MW Revision Create event.
-$id: /mediawiki/revision/create/1.1.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-  - rev_timestamp
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  chronology_id:
-    description: Chonology Protector client ID.
-    type: string
-  comment:
-    description: The comment left by the user that performed this change.
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The page ID of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This fact is ultimately represented
-      by revision content containing redirect wikitext.  If this revision is the
-      head revision of the page, then the page will also be a redirect.
-    type: boolean
-  page_namespace:
-    description: The namespace of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page this revision belongs to.
-    type: string
-    minLength: 1
-  parsedcomment:
-    description: >
-      The comment left by the user that performed this change parsed into simple
-      HTML. Optional
-    type: string
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  rev_content_format:
-    description: The content format of the revision.
-    type: string
-  rev_content_model:
-    description: The content model of the revision.
-    type: string
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_is_revert:
-    description: Flag indicating whether the edit was a revert.
-    type: boolean
-  rev_len:
-    description: The length of the revision text in bytes.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  rev_minor_edit:
-    description: Flag identifying if the revision is minor.
-    type: boolean
-  rev_parent_id:
-    description: The parent revison ID of the revision that this event represents.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_revert_details:
-    description: Details about the revert.
-    type: object
-    required:
-      - rev_revert_method
-      - rev_is_exact_revert
-      - rev_reverted_revs
-    properties:
-      rev_is_exact_revert:
-        description: >
-          Flag indicating whether the revert was exact, i.e. the contents of the
-          revert revision and restored revision match.
-        type: boolean
-      rev_original_rev_id:
-        description: |
-          The ID of an earlier revision that is being repeated or restored.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      rev_revert_method:
-        description: The method that was used to perform the revert.
-        type: string
-        enum:
-          - rollback
-          - undo
-          - manual
-      rev_reverted_revs:
-        description: >
-          IDs of revisions that were reverted by this edit, ordered from oldest
-          to newest.
-        type: array
-        items:
-          type: integer
-          maximum: 9007199254740991
-          minimum: -9007199254740991
-  rev_sha1:
-    description: The sha1 of the revision text.
-    type: string
-  rev_timestamp:
-    description: >
-      The revision's creation time in ISO8601 format.  This field does not end
-      in '_dt' to better match the field name on the Mediawiki revision table.
-    type: string
-    format: date-time
-    maxLength: 128
-examples:
-  - $schema: /mediawiki/revision/create/1.1.0
-    database: examplewiki
-    meta:
-      domain: test.wikipedia.org
-      dt: '2020-06-10T18:57:16Z'
-      stream: mediawiki.revision-create
-      uri: 'https://examplewiki.wikipedia.org/wiki/TestPage10'
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: TestPage10
-    performer:
-      user_edit_count: 1
-      user_groups:
-        - '*'
-        - user
-        - autoconfirmed
-      user_id: 123
-      user_is_bot: false
-      user_registration_dt: '2016-01-29T21:13:24Z'
-      user_text: example_user_text
-    rev_content_changed: true
-    rev_content_format: text/x-wiki
-    rev_content_model: wikitext
-    rev_id: 123
-    rev_is_revert: false
-    rev_len: 3
-    rev_minor_edit: false
-    rev_parent_id: 122
-    rev_sha1: mr0szy90m5qbn6tek7ch3nebaild3tm
-    rev_timestamp: '2020-06-10T18:57:16Z'
-  - $schema: /mediawiki/revision/create/1.1.0
-    database: examplewiki
-    meta:
-      domain: test.wikipedia.org
-      dt: '2020-06-10T19:02:04Z'
-      stream: mediawiki.revision-create
-      uri: 'https://examplewiki.wikipedia.org/wiki/TestPage10'
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: TestPage10
-    performer:
-      user_edit_count: 100
-      user_groups:
-        - '*'
-        - user
-        - autoconfirmed
-        - sysop
-      user_id: 20
-      user_is_bot: false
-      user_registration_dt: '2014-02-23T21:13:24Z'
-      user_text: example_user_sysop_text
-    rev_content_changed: true
-    rev_content_format: text/x-wiki
-    rev_content_model: wikitext
-    rev_id: 124
-    rev_is_revert: true
-    rev_len: 20
-    rev_minor_edit: false
-    rev_parent_id: 123
-    rev_revert_details:
-      rev_is_exact_revert: true
-      rev_original_rev_id: 121
-      rev_revert_method: rollback
-      rev_reverted_revs:
-        - 122
-        - 123
-    rev_sha1: 2mx9qnkore72az8niqap1s3ycpu1jej
-    rev_timestamp: '2020-06-10T18:57:16Z'
diff --git a/jsonschema/mediawiki/revision/create/1.2.0 b/jsonschema/mediawiki/revision/create/1.2.0
deleted file mode 120000
index c4a594d..0000000
--- a/jsonschema/mediawiki/revision/create/1.2.0
+++ /dev/null
@@ -1 +0,0 @@
-1.2.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/create/1.2.0.yaml b/jsonschema/mediawiki/revision/create/1.2.0.yaml
deleted file mode 100644
index e43a256..0000000
--- a/jsonschema/mediawiki/revision/create/1.2.0.yaml
+++ /dev/null
@@ -1,364 +0,0 @@
-title: mediawiki/revision/create
-description: Represents a MW Revision Create event.
-$id: /mediawiki/revision/create/1.2.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-  - rev_timestamp
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  chronology_id:
-    description: Deprecated - no longer populated
-    type: string
-  comment:
-    description: The comment left by the user that performed this change.
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The page ID of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This fact is ultimately represented
-      by revision content containing redirect wikitext.  If this revision is the
-      head revision of the page, then the page will also be a redirect.
-    type: boolean
-  page_namespace:
-    description: The namespace of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page this revision belongs to.
-    type: string
-    minLength: 1
-  parsedcomment:
-    description: >
-      The comment left by the user that performed this change parsed into simple
-      HTML. Optional
-    type: string
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  rev_content_format:
-    description: The content format of the revision.
-    type: string
-  rev_content_model:
-    description: The content model of the revision.
-    type: string
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_is_revert:
-    description: Flag indicating whether the edit was a revert.
-    type: boolean
-  rev_len:
-    description: The length of the revision text in bytes.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  rev_minor_edit:
-    description: Flag identifying if the revision is minor.
-    type: boolean
-  rev_parent_id:
-    description: The parent revison ID of the revision that this event represents.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_revert_details:
-    description: Details about the revert.
-    type: object
-    required:
-      - rev_revert_method
-      - rev_is_exact_revert
-      - rev_reverted_revs
-    properties:
-      rev_is_exact_revert:
-        description: >
-          Flag indicating whether the revert was exact, i.e. the contents of the
-          revert revision and restored revision match.
-        type: boolean
-      rev_original_rev_id:
-        description: |
-          The ID of an earlier revision that is being repeated or restored.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      rev_revert_method:
-        description: The method that was used to perform the revert.
-        type: string
-        enum:
-          - rollback
-          - undo
-          - manual
-      rev_reverted_revs:
-        description: >
-          IDs of revisions that were reverted by this edit, ordered from oldest
-          to newest.
-        type: array
-        items:
-          type: integer
-          maximum: 9007199254740991
-          minimum: -9007199254740991
-  rev_sha1:
-    description: The sha1 of the revision text.
-    type: string
-  rev_slots:
-    description: |
-      The revision slots attached to this revision.
-    type: object
-    additionalProperties:
-      title: fragment/mediawiki/revision/slot
-      description: Schema fields describing a revision slot
-      $id: /fragment/mediawiki/revision/slot/1.0.0
-      $schema: 'https://json-schema.org/draft-07/schema#'
-      type: object
-      additionalProperties: false
-      required:
-        - rev_slot_content_model
-        - rev_slot_sha1
-        - rev_slot_size
-      properties:
-        rev_slot_content_model:
-          description: 'Model of the content (e.g. wikitext, wikibase-mediainfo...)'
-          type: string
-        rev_slot_origin_rev_id:
-          description: Revision for which this slot was created
-          type: integer
-          maximum: 9007199254740991
-          minimum: 0
-        rev_slot_sha1:
-          description: SHA1 of the slot content
-          type: string
-        rev_slot_size:
-          description: Size in bytes of the slot content
-          type: integer
-          maximum: 9007199254740991
-          minimum: 0
-      examples:
-        - rev_slot_content_model: dolor
-          rev_slot_origin_rev_id: 1351079888211148
-          rev_slot_sha1: dolor
-          rev_slot_size: 1351079888211148
-    required:
-      - main
-    properties:
-      main:
-        title: fragment/mediawiki/revision/slot
-        description: Schema fields describing a revision slot
-        $id: /fragment/mediawiki/revision/slot/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        required:
-          - rev_slot_content_model
-          - rev_slot_sha1
-          - rev_slot_size
-        properties:
-          rev_slot_content_model:
-            description: 'Model of the content (e.g. wikitext, wikibase-mediainfo...)'
-            type: string
-          rev_slot_origin_rev_id:
-            description: Revision for which this slot was created
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          rev_slot_sha1:
-            description: SHA1 of the slot content
-            type: string
-          rev_slot_size:
-            description: Size in bytes of the slot content
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - rev_slot_content_model: dolor
-            rev_slot_origin_rev_id: 1351079888211148
-            rev_slot_sha1: dolor
-            rev_slot_size: 1351079888211148
-  rev_timestamp:
-    description: >
-      The revision's creation time in ISO8601 format.  This field does not end
-      in '_dt' to better match the field name on the Mediawiki revision table.
-    type: string
-    format: date-time
-    maxLength: 128
-examples:
-  - $schema: /mediawiki/revision/create/1.2.0
-    database: examplewiki
-    meta:
-      domain: test.wikipedia.org
-      dt: '2020-06-10T18:57:16Z'
-      stream: mediawiki.revision-create
-      uri: 'https://examplewiki.wikipedia.org/wiki/TestPage10'
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: TestPage10
-    performer:
-      user_edit_count: 1
-      user_groups:
-        - '*'
-        - user
-        - autoconfirmed
-      user_id: 123
-      user_is_bot: false
-      user_registration_dt: '2016-01-29T21:13:24Z'
-      user_text: example_user_text
-    rev_content_changed: true
-    rev_content_format: text/x-wiki
-    rev_content_model: wikitext
-    rev_id: 123
-    rev_is_revert: false
-    rev_len: 3
-    rev_minor_edit: false
-    rev_parent_id: 122
-    rev_sha1: mr0szy90m5qbn6tek7ch3nebaild3tm
-    rev_slots:
-      main:
-        rev_slot_content_model: wikitext
-        rev_slot_origin_rev_id: 123
-        rev_slot_sha1: 2mx9qnkore72az8niqap1s3ycpu1jej
-        rev_slot_size: 20
-    rev_timestamp: '2020-06-10T18:57:16Z'
-  - $schema: /mediawiki/revision/create/1.2.0
-    database: examplewiki
-    meta:
-      domain: test.wikipedia.org
-      dt: '2020-06-10T19:02:04Z'
-      stream: mediawiki.revision-create
-      uri: 'https://examplewiki.wikipedia.org/wiki/TestPage10'
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: TestPage10
-    performer:
-      user_edit_count: 100
-      user_groups:
-        - '*'
-        - user
-        - autoconfirmed
-        - sysop
-      user_id: 20
-      user_is_bot: false
-      user_registration_dt: '2014-02-23T21:13:24Z'
-      user_text: example_user_sysop_text
-    rev_content_changed: true
-    rev_content_format: text/x-wiki
-    rev_content_model: wikitext
-    rev_id: 124
-    rev_is_revert: true
-    rev_len: 20
-    rev_minor_edit: false
-    rev_parent_id: 123
-    rev_revert_details:
-      rev_is_exact_revert: true
-      rev_original_rev_id: 121
-      rev_revert_method: rollback
-      rev_reverted_revs:
-        - 122
-        - 123
-    rev_sha1: 2mx9qnkore72az8niqap1s3ycpu1jej
-    rev_slots:
-      main:
-        rev_slot_content_model: wikitext
-        rev_slot_origin_rev_id: 124
-        rev_slot_sha1: 2mx9qnkore72az8niqap1s3ycpu1jej
-        rev_slot_size: 20
-      mediainfo:
-        rev_slot_content_model: wikibase-mediainfo
-        rev_slot_origin_rev_id: 121
-        rev_slot_sha1: c1a805332a2674c1e2b178dabf1e633122a8d43f
-        rev_slot_size: 1414
-    rev_timestamp: '2020-06-10T18:57:16Z'
diff --git a/jsonschema/mediawiki/revision/create/2.0.0 b/jsonschema/mediawiki/revision/create/2.0.0
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/mediawiki/revision/create/2.0.0
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/create/2.0.0.yaml b/jsonschema/mediawiki/revision/create/2.0.0.yaml
deleted file mode 100644
index 81cee38..0000000
--- a/jsonschema/mediawiki/revision/create/2.0.0.yaml
+++ /dev/null
@@ -1,415 +0,0 @@
-title: mediawiki/revision/create
-description: Represents a MW Revision Create event.
-$id: /mediawiki/revision/create/2.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - database
-  - dt
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-  - rev_timestamp
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  chronology_id:
-    description: Deprecated - no longer populated
-    type: string
-  comment:
-    description: The comment left by the user that performed this change.
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The page ID of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This fact is ultimately represented
-      by revision content containing redirect wikitext.  If this revision is the
-      head revision of the page, then the page will also be a redirect.
-    type: boolean
-  page_namespace:
-    description: The namespace of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page this revision belongs to.
-    type: string
-    minLength: 1
-  parsedcomment:
-    description: >
-      The comment left by the user that performed this change parsed into simple
-      HTML. Optional
-    type: string
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  rev_content_changed:
-    description: >-
-      True if the content has changed (rev_sha1 is different than the previous
-      revision one)
-    type: boolean
-  rev_content_format:
-    description: The content format of the revision.
-    type: string
-  rev_content_model:
-    description: The content model of the revision.
-    type: string
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_is_revert:
-    description: Flag indicating whether the edit was a revert.
-    type: boolean
-  rev_len:
-    description: The length of the revision text in bytes.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  rev_minor_edit:
-    description: Flag identifying if the revision is minor.
-    type: boolean
-  rev_parent_id:
-    description: The parent revison ID of the revision that this event represents.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_revert_details:
-    description: Details about the revert.
-    type: object
-    required:
-      - rev_revert_method
-      - rev_is_exact_revert
-      - rev_reverted_revs
-    properties:
-      rev_is_exact_revert:
-        description: >
-          Flag indicating whether the revert was exact, i.e. the contents of the
-          revert revision and restored revision match.
-        type: boolean
-      rev_original_rev_id:
-        description: |
-          The ID of an earlier revision that is being repeated or restored.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      rev_revert_method:
-        description: The method that was used to perform the revert.
-        type: string
-        enum:
-          - rollback
-          - undo
-          - manual
-      rev_reverted_revs:
-        description: >
-          IDs of revisions that were reverted by this edit, ordered from oldest
-          to newest.
-        type: array
-        items:
-          type: integer
-          maximum: 9007199254740991
-          minimum: -9007199254740991
-  rev_sha1:
-    description: The sha1 of the revision text.
-    type: string
-  rev_slots:
-    description: |
-      The revision slots attached to this revision.
-    type: object
-    additionalProperties:
-      title: fragment/mediawiki/revision/slot
-      description: Schema fields describing a revision slot
-      $id: /fragment/mediawiki/revision/slot/1.0.0
-      $schema: 'https://json-schema.org/draft-07/schema#'
-      type: object
-      additionalProperties: false
-      required:
-        - rev_slot_content_model
-        - rev_slot_sha1
-        - rev_slot_size
-      properties:
-        rev_slot_content_model:
-          description: 'Model of the content (e.g. wikitext, wikibase-mediainfo...)'
-          type: string
-        rev_slot_origin_rev_id:
-          description: Revision for which this slot was created
-          type: integer
-          maximum: 9007199254740991
-          minimum: 0
-        rev_slot_sha1:
-          description: SHA1 of the slot content
-          type: string
-        rev_slot_size:
-          description: Size in bytes of the slot content
-          type: integer
-          maximum: 9007199254740991
-          minimum: 0
-      examples:
-        - rev_slot_content_model: dolor
-          rev_slot_origin_rev_id: 1351079888211148
-          rev_slot_sha1: dolor
-          rev_slot_size: 1351079888211148
-    required:
-      - main
-    properties:
-      main:
-        title: fragment/mediawiki/revision/slot
-        description: Schema fields describing a revision slot
-        $id: /fragment/mediawiki/revision/slot/1.0.0
-        $schema: 'https://json-schema.org/draft-07/schema#'
-        type: object
-        additionalProperties: false
-        required:
-          - rev_slot_content_model
-          - rev_slot_sha1
-          - rev_slot_size
-        properties:
-          rev_slot_content_model:
-            description: 'Model of the content (e.g. wikitext, wikibase-mediainfo...)'
-            type: string
-          rev_slot_origin_rev_id:
-            description: Revision for which this slot was created
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-          rev_slot_sha1:
-            description: SHA1 of the slot content
-            type: string
-          rev_slot_size:
-            description: Size in bytes of the slot content
-            type: integer
-            maximum: 9007199254740991
-            minimum: 0
-        examples:
-          - rev_slot_content_model: dolor
-            rev_slot_origin_rev_id: 1351079888211148
-            rev_slot_sha1: dolor
-            rev_slot_size: 1351079888211148
-  rev_timestamp:
-    description: >
-      The revision's creation time in ISO8601 format.  This field does not end
-      in '_dt' to better match the field name on the Mediawiki revision table.
-    type: string
-    format: date-time
-    maxLength: 128
-examples:
-  - $schema: /mediawiki/revision/create/2.0.0
-    database: examplewiki
-    dt: '2020-06-10T18:56:00Z'
-    meta:
-      domain: test.wikipedia.org
-      dt: '2020-06-10T18:57:16Z'
-      stream: mediawiki.revision-create
-      uri: 'https://examplewiki.wikipedia.org/wiki/TestPage10'
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: TestPage10
-    performer:
-      user_edit_count: 1
-      user_groups:
-        - '*'
-        - user
-        - autoconfirmed
-      user_id: 123
-      user_is_bot: false
-      user_registration_dt: '2016-01-29T21:13:24Z'
-      user_text: example_user_text
-    rev_content_changed: true
-    rev_content_format: text/x-wiki
-    rev_content_model: wikitext
-    rev_id: 123
-    rev_is_revert: false
-    rev_len: 3
-    rev_minor_edit: false
-    rev_parent_id: 122
-    rev_sha1: mr0szy90m5qbn6tek7ch3nebaild3tm
-    rev_slots:
-      main:
-        rev_slot_content_model: wikitext
-        rev_slot_origin_rev_id: 123
-        rev_slot_sha1: 2mx9qnkore72az8niqap1s3ycpu1jej
-        rev_slot_size: 20
-    rev_timestamp: '2020-06-10T18:56:00Z'
-  - $schema: /mediawiki/revision/create/2.0.0
-    database: examplewiki
-    dt: '2020-06-10T18:56:00Z'
-    meta:
-      domain: test.wikipedia.org
-      dt: '2020-06-10T19:02:04Z'
-      stream: mediawiki.revision-create
-      uri: 'https://examplewiki.wikipedia.org/wiki/TestPage10'
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: TestPage10
-    performer:
-      user_edit_count: 100
-      user_groups:
-        - '*'
-        - user
-        - autoconfirmed
-        - sysop
-      user_id: 20
-      user_is_bot: false
-      user_registration_dt: '2014-02-23T21:13:24Z'
-      user_text: example_user_sysop_text
-    rev_content_changed: true
-    rev_content_format: text/x-wiki
-    rev_content_model: wikitext
-    rev_id: 124
-    rev_is_revert: true
-    rev_len: 20
-    rev_minor_edit: false
-    rev_parent_id: 123
-    rev_revert_details:
-      rev_is_exact_revert: true
-      rev_original_rev_id: 121
-      rev_revert_method: rollback
-      rev_reverted_revs:
-        - 122
-        - 123
-    rev_sha1: 2mx9qnkore72az8niqap1s3ycpu1jej
-    rev_slots:
-      main:
-        rev_slot_content_model: wikitext
-        rev_slot_origin_rev_id: 124
-        rev_slot_sha1: 2mx9qnkore72az8niqap1s3ycpu1jej
-        rev_slot_size: 20
-      mediainfo:
-        rev_slot_content_model: wikibase-mediainfo
-        rev_slot_origin_rev_id: 121
-        rev_slot_sha1: c1a805332a2674c1e2b178dabf1e633122a8d43f
-        rev_slot_size: 1414
-    rev_timestamp: '2020-06-10T18:56:00Z'
-  - $schema: /mediawiki/revision/create/2.0.0
-    comment: testing
-    database: my_wiki
-    dt: '2017-10-17T11:48:35Z'
-    meta:
-      domain: localhost
-      dt": '2023-06-15T15:51:32Z'
-      id: bd37948a-1d0e-431c-afa2-ec7b97436ba6
-      request_id: a331985f82ec4249c480d23a
-      stream: mediawiki.revision-create
-      uri: 'http://localhost:8080/wiki/Test'
-    page_id: 23
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: Test
-    performer:
-      user_groups":
-        - '*'
-      user_is_bot: false
-      user_text": 111.0.1.2
-    rev_content_changed: true
-    rev_content_format: text/x-wiki
-    rev_content_model: wikitext
-    rev_id: 42
-    rev_len: 46
-    rev_minor_edit: false
-    rev_parent_id: 1
-    rev_sha1: rdqbbzs3pkhihgbs8qf2q9jsvheag5z
-    rev_slots:
-      main:
-        rev_slot_content_model: wikitext
-        rev_slot_sha1: a3kvjf7vqh9qchzi5sl1q87q9hx48pk
-        rev_slot_size: 12
-      sidetext:
-        rev_slot_content_model: text
-        rev_slot_origin_rev_id: 42
-        rev_slot_sha1: hj5t2yi95v1hhdjtzfn6itv3efu4ltg
-        rev_slot_size: 14
-    rev_timestamp: '2017-10-17T11:48:35Z'
diff --git a/jsonschema/mediawiki/revision/create/CHANGELOG.md b/jsonschema/mediawiki/revision/create/CHANGELOG.md
deleted file mode 100644
index e635e82..0000000
--- a/jsonschema/mediawiki/revision/create/CHANGELOG.md
+++ /dev/null
@@ -1,20 +0,0 @@
-### Version 2.0.0
- - Start using /fragment/mediawiki/revision/common/3.0.0# (add top-level dt field)
-    - introduce the event-time dt field (mandatory)
-    - strengthen the schema with additionalProperties: false
- - Declared rev_content_changed explicitly
-
-### Version 1.1.0
- - Added `rev_is_revert` and `rev_revert_details` fields. `rev_revert_details` consists of `rev_revert_method`, `rev_is_exact_revert`, `rev_reverted_revs` and `rev_original_rev_id`.
-
-### Version 1.0.0
- - Updated to draft-07 new schema conventions.
-
-### Version 4
- - Added `chronology_id` field.
-
-### Version 3
- - Added `minLength: 1` for required string properties.
-
-### Version 2
- - Added `parsedcomment` optional field.
diff --git a/jsonschema/mediawiki/revision/create/current.yaml b/jsonschema/mediawiki/revision/create/current.yaml
deleted file mode 100644
index 4e2a903..0000000
--- a/jsonschema/mediawiki/revision/create/current.yaml
+++ /dev/null
@@ -1,249 +0,0 @@
-title: mediawiki/revision/create
-description: Represents a MW Revision Create event.
-$id: /mediawiki/revision/create/2.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-required:
-  - database
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-  - rev_timestamp
-allOf:
-  ### revision entity fields - all revision related events should have these.
-  - $ref: /fragment/mediawiki/revision/common/3.0.0#
-  ### revision/create specific fields
-properties:
-  chronology_id:
-    description: Deprecated - no longer populated
-    type: string
-
-  comment:
-    description: The comment left by the user that performed this change.
-    type: string
-
-  ### Since mediawiki.revision-create v2
-  parsedcomment:
-    description: >
-      The comment left by the user that performed this change
-      parsed into simple HTML. Optional
-    type: string
-
-  rev_content_changed:
-    description: True if the content has changed (rev_sha1 is different than the previous revision one)
-    type: boolean
-
-  rev_sha1:
-    description: The sha1 of the revision text.
-    type: string
-
-  rev_len:
-    description: The length of the revision text in bytes.
-    type: integer
-
-  rev_minor_edit:
-    description: Flag identifying if the revision is minor.
-    type: boolean
-
-  rev_content_model:
-    description: The content model of the revision.
-    type: string
-
-  rev_content_format:
-    description: The content format of the revision.
-    type: string
-
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This
-      fact is ultimately represented by revision content containing
-      redirect wikitext.  If this revision is the head revision
-      of the page, then the page will also be a redirect.
-    type: boolean
-
-  ### revert-related fields
-  rev_is_revert:
-    description: Flag indicating whether the edit was a revert.
-    type: boolean
-
-  rev_revert_details:
-    description: Details about the revert.
-    type: object
-    properties:
-      rev_revert_method:
-        description: The method that was used to perform the revert.
-        type: string
-        enum:
-          - rollback
-          - undo
-          - manual
-
-      rev_is_exact_revert:
-        description: >
-          Flag indicating whether the revert was exact, i.e. the contents of
-          the revert revision and restored revision match.
-        type: boolean
-
-      rev_reverted_revs:
-        description: >
-          IDs of revisions that were reverted by this edit, ordered from
-          oldest to newest.
-        type: array
-        items:
-          type: integer
-
-      rev_original_rev_id:
-        description: >
-          The ID of an earlier revision that is being repeated or restored.
-        type: integer
-
-    required:
-      - rev_revert_method
-      - rev_is_exact_revert
-      - rev_reverted_revs
-
-  rev_slots:
-    description: >
-      The revision slots attached to this revision.
-    type: object
-    ### the mix of properties and additionalProperties allows to guarantee that the "main" slot is always present
-    ### while still allowing side-slots (like "mediainfo" on commons) to appear
-    properties:
-      main:
-        $ref: /fragment/mediawiki/revision/slot/1.0.0#
-    additionalProperties:
-      $ref: /fragment/mediawiki/revision/slot/1.0.0#
-    required:
-      - main
-
-examples:
-  - $schema: { $ref: '#/$id' }
-    meta:
-      uri: https://examplewiki.wikipedia.org/wiki/TestPage10
-      dt: '2020-06-10T18:57:16Z'
-      domain: test.wikipedia.org
-      stream: mediawiki.revision-create
-    dt: '2020-06-10T18:56:00Z'
-    database: examplewiki
-    page_id: 123
-    page_title: TestPage10
-    page_namespace: 0
-    rev_id: 123
-    rev_timestamp: '2020-06-10T18:56:00Z'
-    rev_sha1: mr0szy90m5qbn6tek7ch3nebaild3tm
-    rev_minor_edit: false
-    rev_len: 3
-    rev_content_model: wikitext
-    rev_content_format: text/x-wiki
-    performer:
-      user_text: example_user_text
-      user_groups:
-      - "*"
-      - user
-      - autoconfirmed
-      user_is_bot: false
-      user_id: 123
-      user_registration_dt: '2016-01-29T21:13:24Z'
-      user_edit_count: 1
-    page_is_redirect: false
-    rev_parent_id: 122
-    rev_content_changed: true
-    rev_is_revert: false
-    rev_slots:
-      main:
-        rev_slot_content_model: wikitext
-        rev_slot_origin_rev_id: 123
-        rev_slot_sha1: 2mx9qnkore72az8niqap1s3ycpu1jej
-        rev_slot_size: 20
-  - $schema: { $ref: '#/$id' }
-    meta:
-      uri: https://examplewiki.wikipedia.org/wiki/TestPage10
-      dt: '2020-06-10T19:02:04Z'
-      domain: test.wikipedia.org
-      stream: mediawiki.revision-create
-    dt: '2020-06-10T18:56:00Z'
-    database: examplewiki
-    page_id: 123
-    page_title: TestPage10
-    page_namespace: 0
-    rev_id: 124
-    rev_timestamp: '2020-06-10T18:56:00Z'
-    rev_sha1: 2mx9qnkore72az8niqap1s3ycpu1jej
-    rev_minor_edit: false
-    rev_len: 20
-    rev_content_model: wikitext
-    rev_content_format: text/x-wiki
-    performer:
-      user_text: example_user_sysop_text
-      user_groups:
-        - "*"
-        - user
-        - autoconfirmed
-        - sysop
-      user_is_bot: false
-      user_id: 20
-      user_registration_dt: '2014-02-23T21:13:24Z'
-      user_edit_count: 100
-    page_is_redirect: false
-    rev_parent_id: 123
-    rev_content_changed: true
-    rev_is_revert: true
-    rev_revert_details:
-      rev_revert_method: rollback
-      rev_is_exact_revert: true
-      rev_reverted_revs:
-        - 122
-        - 123
-      rev_original_rev_id: 121
-    rev_slots:
-      main:
-        rev_slot_content_model: wikitext
-        rev_slot_origin_rev_id: 124
-        rev_slot_sha1: 2mx9qnkore72az8niqap1s3ycpu1jej
-        rev_slot_size: 20
-      mediainfo:
-        rev_slot_content_model: wikibase-mediainfo
-        rev_slot_origin_rev_id: 121
-        rev_slot_sha1: c1a805332a2674c1e2b178dabf1e633122a8d43f
-        rev_slot_size: 1414
-  - $schema: { $ref: '#/$id' }
-    meta:
-      uri: "http://localhost:8080/wiki/Test"
-      request_id: "a331985f82ec4249c480d23a"
-      id: "bd37948a-1d0e-431c-afa2-ec7b97436ba6"
-      dt": "2023-06-15T15:51:32Z"
-      domain: "localhost"
-      stream: "mediawiki.revision-create"
-    dt: "2017-10-17T11:48:35Z"
-    database: "my_wiki"
-    page_id: 23
-    page_title: "Test"
-    page_namespace: 0
-    rev_id: 42
-    rev_timestamp: "2017-10-17T11:48:35Z"
-    rev_sha1: "rdqbbzs3pkhihgbs8qf2q9jsvheag5z"
-    rev_minor_edit: false
-    rev_len: 46
-    rev_content_model: "wikitext"
-    rev_content_format: "text/x-wiki"
-    performer:
-      user_text": "111.0.1.2"
-      user_groups":
-        - "*"
-      user_is_bot: false
-    page_is_redirect: false
-    comment: "testing"
-    rev_parent_id: 1
-    rev_slots:
-      main:
-        rev_slot_content_model: "wikitext"
-        rev_slot_sha1: "a3kvjf7vqh9qchzi5sl1q87q9hx48pk"
-        rev_slot_size: 12
-      sidetext:
-        rev_slot_content_model: "text"
-        rev_slot_sha1: "hj5t2yi95v1hhdjtzfn6itv3efu4ltg"
-        rev_slot_size: 14
-        rev_slot_origin_rev_id: 42
-    rev_content_changed: true
diff --git a/jsonschema/mediawiki/revision/create/latest b/jsonschema/mediawiki/revision/create/latest
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/mediawiki/revision/create/latest
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/create/latest.yaml b/jsonschema/mediawiki/revision/create/latest.yaml
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/mediawiki/revision/create/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/recommendation-create/1.0.0 b/jsonschema/mediawiki/revision/recommendation-create/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/revision/recommendation-create/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/recommendation-create/1.0.0.yaml b/jsonschema/mediawiki/revision/recommendation-create/1.0.0.yaml
deleted file mode 100644
index baa190d..0000000
--- a/jsonschema/mediawiki/revision/recommendation-create/1.0.0.yaml
+++ /dev/null
@@ -1,174 +0,0 @@
-title: mediawiki/revision/recommendation-create
-description: Represents a recommendation (suggested edit) for a given revision.
-$id: /mediawiki/revision/recommendation-create/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-  - rev_timestamp
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The page ID of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This fact is ultimately represented
-      by revision content containing redirect wikitext.  If this revision is the
-      head revision of the page, then the page will also be a redirect.
-    type: boolean
-  page_namespace:
-    description: The namespace of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page this revision belongs to.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  recommendation_type:
-    description: A keyword identifying the recommendation type.
-    type: string
-    maxLength: 64
-    pattern: '^[\d\w-]+$'
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_parent_id:
-    description: The parent revison ID of the revision that this event represents.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_timestamp:
-    description: >
-      The revision's creation time in ISO8601 format.  This field does not end
-      in '_dt' to better match the field name on the Mediawiki revision table.
-    type: string
-    format: date-time
-    maxLength: 128
-examples:
-  - $schema: /mediawiki/revision/recommendation-create/1.0.0
-    database: examplewiki
-    meta:
-      domain: test.wikipedia.org
-      dt: '2020-06-10T18:57:16Z'
-      stream: mediawiki.revision-recommendation-create
-      uri: 'https://examplewiki.wikipedia.org/wiki/TestPage10'
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: TestPage10
-    performer:
-      user_edit_count: 1
-      user_groups:
-        - '*'
-        - user
-        - autoconfirmed
-      user_id: 123
-      user_is_bot: false
-      user_registration_dt: '2016-01-29T21:13:24Z'
-      user_text: example_user_text
-    recommendation_type: link
-    rev_content_changed: true
-    rev_content_format: text/x-wiki
-    rev_content_model: wikitext
-    rev_id: 123
-    rev_len: 3
-    rev_minor_edit: false
-    rev_parent_id: 122
-    rev_sha1: mr0szy90m5qbn6tek7ch3nebaild3tm
-    rev_timestamp: '2020-06-10T18:57:16Z'
diff --git a/jsonschema/mediawiki/revision/recommendation-create/README.md b/jsonschema/mediawiki/revision/recommendation-create/README.md
deleted file mode 100644
index 9a1f46c..0000000
--- a/jsonschema/mediawiki/revision/recommendation-create/README.md
+++ /dev/null
@@ -1,13 +0,0 @@
-The recommendation-create event signals to to consumers (primarily, to the
-search infrastructure) that a new task recommendation has been created.
-This mechanism is used to keep the MediaWiki database storing the
-recommendations, and the search index making articles with recommendations
-findable, in sync. Other updates (such as when a recommendation becomes
-obsolete due to an edit) happen via the normal MediaWiki index update
-mechanism.
-
-For more information about link recommendations, see
-https://wikitech.wikimedia.org/wiki/Add_Link
-
-For more information about task recommendations in general, see
-https://www.mediawiki.org/wiki/Growth/Personalized_first_day/Structured_tasks
diff --git a/jsonschema/mediawiki/revision/recommendation-create/current.yaml b/jsonschema/mediawiki/revision/recommendation-create/current.yaml
deleted file mode 100644
index fc8b695..0000000
--- a/jsonschema/mediawiki/revision/recommendation-create/current.yaml
+++ /dev/null
@@ -1,48 +0,0 @@
-title: mediawiki/revision/recommendation-create
-description: Represents a recommendation (suggested edit) for a given revision.
-$id: /mediawiki/revision/recommendation-create/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  ### revision entity fields - all revision related events should have these.
-  - $ref: /fragment/mediawiki/revision/common/1.0.0#
-  ### recommendation/add specific fields.
-  - properties:
-      recommendation_type:
-        description: A keyword identifying the recommendation type.
-        type: string
-        pattern: ^[\d\w-]+$
-        maxLength: 64
-
-examples:
-  - $schema: { $ref: '#/$id' }
-    meta:
-      uri: https://examplewiki.wikipedia.org/wiki/TestPage10
-      dt: '2020-06-10T18:57:16Z'
-      domain: test.wikipedia.org
-      stream: mediawiki.revision-recommendation-create
-    database: examplewiki
-    page_id: 123
-    page_title: TestPage10
-    page_namespace: 0
-    rev_id: 123
-    rev_timestamp: '2020-06-10T18:57:16Z'
-    rev_sha1: mr0szy90m5qbn6tek7ch3nebaild3tm
-    rev_minor_edit: false
-    rev_len: 3
-    rev_content_model: wikitext
-    rev_content_format: text/x-wiki
-    performer:
-      user_text: example_user_text
-      user_groups:
-      - "*"
-      - user
-      - autoconfirmed
-      user_is_bot: false
-      user_id: 123
-      user_registration_dt: '2016-01-29T21:13:24Z'
-      user_edit_count: 1
-    page_is_redirect: false
-    rev_parent_id: 122
-    rev_content_changed: true
-    recommendation_type: link
diff --git a/jsonschema/mediawiki/revision/recommendation-create/latest b/jsonschema/mediawiki/revision/recommendation-create/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/revision/recommendation-create/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/recommendation-create/latest.yaml b/jsonschema/mediawiki/revision/recommendation-create/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/revision/recommendation-create/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/score/1.0.0 b/jsonschema/mediawiki/revision/score/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/revision/score/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/score/1.0.0.yaml b/jsonschema/mediawiki/revision/score/1.0.0.yaml
deleted file mode 100644
index 6557e0a..0000000
--- a/jsonschema/mediawiki/revision/score/1.0.0.yaml
+++ /dev/null
@@ -1,213 +0,0 @@
-title: mediawiki/revision/score
-description: Represents a MW Revision Score event (from ORES).
-$id: /mediawiki/revision/score/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-  - rev_timestamp
-properties:
-  $schema:
-    type: string
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema_name/1.0.0
-  meta:
-    type: object
-    required:
-      - id
-      - dt
-      - stream
-    properties:
-      uri:
-        type: string
-        format: uri-reference
-        maxLength: 8192
-        description: Unique URI identifying the event or entity
-      request_id:
-        type: string
-        description: Unique ID of the request that caused the event
-      id:
-        type: string
-        pattern: '^[a-fA-F0-9]{8}(-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}$'
-        maxLength: 36
-        description: Unique ID of this event
-      dt:
-        type: string
-        format: date-time
-        maxLength: 128
-        description: 'Event datetime, in ISO-8601 format'
-      domain:
-        type: string
-        description: Domain the event or entity pertains to
-        minLength: 1
-      stream:
-        type: string
-        description: Name of the stream/queue/dataset that this event belongs in
-        minLength: 1
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-  page_id:
-    description: The page ID of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  page_title:
-    description: The normalized title of the page this revision belongs to.
-    type: string
-    minLength: 1
-  page_namespace:
-    description: The namespace of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This fact is ultimately represented
-      by revision content containing redirect wikitext.  If this revision is the
-      head revision of the page, then the page will also be a redirect.
-    type: boolean
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_parent_id:
-    description: The parent revison ID of the revision that this event represents.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_timestamp:
-    description: >
-      The revision's creation time in ISO8601 format.  This field does not end
-      in '_dt' to better match the field name on the Mediawiki revision table.
-    type: string
-    format: date-time
-    maxLength: 128
-  scores:
-    description: >
-      List of ORES score objects. Each model here was used to score this
-      revision.  Example: {
-        "model_name": "awesomeness",
-        "model_version": "1.0.1",
-        "prediction": ["yes", "mostly"],
-        "probability": [
-          {"name": "yes",    "value": 0.99},
-          {"name": "mostly", "value": 0.90},
-          {"name": "hardly", "value": 0.01}
-        ]
-      }
-    type: array
-    items:
-      type: object
-      required:
-        - model_name
-        - model_version
-        - prediction
-        - probability
-      properties:
-        model_name:
-          description: The name of the model used for this score.
-          type: string
-        model_version:
-          description: The version of the model used for this score.
-          type: string
-        prediction:
-          description: A list of predictions made by this model.
-          type: array
-          items:
-            type: string
-        probability:
-          description: >
-            A list of probabilities made by this model. Each element is an
-            object with a probability 'name' and a probability 'value'.
-          type: array
-          items:
-            type: object
-            required:
-              - name
-              - value
-            properties:
-              name:
-                type: string
-              value:
-                type: number
-                maximum: 9007199254740991
-                minimum: -9007199254740991
-  errors:
-    description: Errors that occured when models attempted to score this revision.
-    type: array
-    items:
-      type: object
-      required:
-        - model_name
-        - model_version
-        - type
-        - message
-      properties:
-        model_name:
-          description: The name of the model that encountered this error.
-          type: string
-        model_version:
-          description: The version of the model that encountered this error.
-          type: string
-        type:
-          description: The short name of this error
-          type: string
-        message:
-          description: A human-readable explanation of what went wrong
-          type: string
diff --git a/jsonschema/mediawiki/revision/score/2.0.0 b/jsonschema/mediawiki/revision/score/2.0.0
deleted file mode 120000
index ee48b83..0000000
--- a/jsonschema/mediawiki/revision/score/2.0.0
+++ /dev/null
@@ -1 +0,0 @@
-2.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/score/2.0.0.yaml b/jsonschema/mediawiki/revision/score/2.0.0.yaml
deleted file mode 100644
index 1084b06..0000000
--- a/jsonschema/mediawiki/revision/score/2.0.0.yaml
+++ /dev/null
@@ -1,248 +0,0 @@
-title: mediawiki/revision/score
-description: Represents a MW Revision Score event (from ORES).
-$id: /mediawiki/revision/score/2.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-  - rev_timestamp
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  errors:
-    description: >-
-      Errors that occured when models attempted to score this revision. Each
-      error uses the model name as a map key.
-    type: object
-    additionalProperties:
-      type: object
-      required:
-        - model_name
-        - model_version
-        - type
-        - message
-      properties:
-        type:
-          description: The short name of this error
-          type: string
-        message:
-          description: A human-readable explanation of what went wrong
-          type: string
-        model_name:
-          description: The name of the model that encountered this error.
-          type: string
-        model_version:
-          description: The version of the model that encountered this error.
-          type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The page ID of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This fact is ultimately represented
-      by revision content containing redirect wikitext.  If this revision is the
-      head revision of the page, then the page will also be a redirect.
-    type: boolean
-  page_namespace:
-    description: The namespace of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page this revision belongs to.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_parent_id:
-    description: The parent revison ID of the revision that this event represents.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_timestamp:
-    description: >
-      The revision's creation time in ISO8601 format.  This field does not end
-      in '_dt' to better match the field name on the Mediawiki revision table.
-    type: string
-    format: date-time
-    maxLength: 128
-  scores:
-    description: >
-      List of ORES score objects. Each model uses the model name as a map key
-      and was used to score this revision.  Example: {
-        "awesomeness": {
-          "model_name": "awesomeness",
-          "model_version": "1.0.1",
-          "prediction": ["yes", "mostly"],
-          "probability": {
-            "yes": 0.99,
-            "mostly": 0.90,
-            "hardly": 0.01
-          }
-        }
-      }
-    type: object
-    additionalProperties:
-      type: object
-      required:
-        - model_name
-        - model_version
-        - prediction
-        - probability
-      properties:
-        model_name:
-          description: The name of the model used for this score.
-          type: string
-        model_version:
-          description: The version of the model used for this score.
-          type: string
-        prediction:
-          description: A list of predictions made by this model.
-          type: array
-          items:
-            type: string
-        probability:
-          description: >
-            A list of probabilities made by this model. Each element is a
-            key/value with a probability name and a probability value.
-          type: object
-          additionalProperties:
-            type: number
-            maximum: 9007199254740991
-            minimum: -9007199254740991
-examples:
-  - $schema: /mediawiki/revision/score/2.0.0
-    database: examplewiki
-    meta:
-      domain: test.wikipedia.org
-      dt: '2020-06-10T18:57:16Z'
-      stream: mediawiki.revision-score
-      uri: 'https://examplewiki.wikipedia.org/wiki/TestPage10'
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: TestPage10
-    performer:
-      user_edit_count: 1
-      user_groups:
-        - '*'
-        - user
-        - autoconfirmed
-      user_id: 123
-      user_is_bot: false
-      user_registration_dt: '2016-01-29T21:13:24Z'
-      user_text: example_user_text
-    rev_content_changed: true
-    rev_content_format: text/x-wiki
-    rev_content_model: wikitext
-    rev_id: 123
-    rev_len: 3
-    rev_minor_edit: false
-    rev_parent_id: 122
-    rev_sha1: mr0szy90m5qbn6tek7ch3nebaild3tm
-    rev_timestamp: '2020-06-10T18:57:16Z'
-    scores:
-      example_model:
-        model_name: example_model
-        model_version: 1.0.1
-        prediction:
-          - 'yes'
-          - mostly
-        probability:
-          hardly: 0.01
-          mostly: 0.9
-          'yes': 0.99
diff --git a/jsonschema/mediawiki/revision/score/3.0.0 b/jsonschema/mediawiki/revision/score/3.0.0
deleted file mode 120000
index 2ccb6c9..0000000
--- a/jsonschema/mediawiki/revision/score/3.0.0
+++ /dev/null
@@ -1 +0,0 @@
-3.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/score/3.0.0.yaml b/jsonschema/mediawiki/revision/score/3.0.0.yaml
deleted file mode 100644
index 3fe094b..0000000
--- a/jsonschema/mediawiki/revision/score/3.0.0.yaml
+++ /dev/null
@@ -1,241 +0,0 @@
-title: mediawiki/revision/score
-description: Represents a MW Revision Score event (from ORES).
-$id: /mediawiki/revision/score/3.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-  - dt
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  dt:
-    description: >
-      ISO-8601 formatted timestamp of when the event occurred/was generated in
-      UTC), AKA 'event time'. This is different than meta.dt, which is used as
-      the time the system received this event.
-    type: string
-    format: date-time
-    maxLength: 128
-  errors:
-    description: >-
-      Errors that occured when models attempted to score this revision. Each
-      error uses the model name as a map key.
-    type: object
-    additionalProperties:
-      type: object
-      required:
-        - model_name
-        - model_version
-        - type
-        - message
-      properties:
-        type:
-          description: The short name of this error
-          type: string
-        message:
-          description: A human-readable explanation of what went wrong
-          type: string
-        model_name:
-          description: The name of the model that encountered this error.
-          type: string
-        model_version:
-          description: The version of the model that encountered this error.
-          type: string
-  meta:
-    type: object
-    required:
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'Time the event was received by the system, in UTC ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream (dataset) that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The page ID of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This fact is ultimately represented
-      by revision content containing redirect wikitext.  If this revision is the
-      head revision of the page, then the page will also be a redirect.
-    type: boolean
-  page_namespace:
-    description: The namespace of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page this revision belongs to.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_parent_id:
-    description: The parent revison ID of the revision that this event represents.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_timestamp:
-    description: >
-      The revision's creation time in ISO8601 format.  This field does not end
-      in '_dt' to better match the field name on the Mediawiki revision table.
-    type: string
-    format: date-time
-    maxLength: 128
-  scores:
-    description: >
-      List of ORES score objects. Each model uses the model name as a map key
-      and was used to score this revision.  Example: {
-        "awesomeness": {
-          "model_name": "awesomeness",
-          "model_version": "1.0.1",
-          "prediction": ["yes", "mostly"],
-          "probability": {
-            "yes": 0.99,
-            "mostly": 0.90,
-            "hardly": 0.01
-          }
-        }
-      }
-    type: object
-    additionalProperties:
-      type: object
-      required:
-        - model_name
-        - model_version
-        - prediction
-        - probability
-      properties:
-        model_name:
-          description: The name of the model used for this score.
-          type: string
-        model_version:
-          description: The version of the model used for this score.
-          type: string
-        prediction:
-          description: A list of predictions made by this model.
-          type: array
-          items:
-            type: string
-        probability:
-          description: >
-            A list of probabilities made by this model. Each element is a
-            key/value with a probability name and a probability value.
-          type: object
-          additionalProperties:
-            type: number
-            maximum: 9007199254740991
-            minimum: -9007199254740991
-examples:
-  - $schema: /mediawiki/revision/score/3.0.0
-    database: examplewiki
-    dt: '2020-06-10T18:53:00Z'
-    meta:
-      domain: test.wikipedia.org
-      dt: '2020-06-10T18:57:16Z'
-      stream: mediawiki.revision-score
-      uri: 'https://examplewiki.wikipedia.org/wiki/TestPage10'
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: TestPage10
-    performer:
-      user_edit_count: 1
-      user_groups:
-        - '*'
-        - user
-        - autoconfirmed
-      user_id: 123
-      user_is_bot: false
-      user_registration_dt: '2016-01-29T21:13:24Z'
-      user_text: example_user_text
-    rev_id: 123
-    rev_parent_id: 122
-    rev_timestamp: '2020-06-10T18:53:00Z'
-    scores:
-      example_model:
-        model_name: example_model
-        model_version: 1.0.1
-        prediction:
-          - 'yes'
-          - mostly
-        probability:
-          hardly: 0.01
-          mostly: 0.9
-          'yes': 0.99
diff --git a/jsonschema/mediawiki/revision/score/CHANGELOG.md b/jsonschema/mediawiki/revision/score/CHANGELOG.md
deleted file mode 100644
index 04aba5f..0000000
--- a/jsonschema/mediawiki/revision/score/CHANGELOG.md
+++ /dev/null
@@ -1,2 +0,0 @@
-# 3.0.0
-- Use fragment/revision/common/3.0.0
diff --git a/jsonschema/mediawiki/revision/score/current.yaml b/jsonschema/mediawiki/revision/score/current.yaml
deleted file mode 100644
index ae1049c..0000000
--- a/jsonschema/mediawiki/revision/score/current.yaml
+++ /dev/null
@@ -1,115 +0,0 @@
-title: mediawiki/revision/score
-description: Represents a MW Revision Score event (from ORES).
-$id: /mediawiki/revision/score/3.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-additionalProperties: false
-allOf:
-  ### revision entity fields - all revision related events should have these.
-  - $ref: /fragment/mediawiki/revision/common/3.0.0#
-### revision/score specific fields
-properties:
-  scores:
-    description: >
-      List of ORES score objects. Each model uses the model name as a map key and was used to score this revision.  Example:
-      {
-        "awesomeness": {
-          "model_name": "awesomeness",
-          "model_version": "1.0.1",
-          "prediction": ["yes", "mostly"],
-          "probability": {
-            "yes": 0.99,
-            "mostly": 0.90,
-            "hardly": 0.01
-          }
-        }
-      }
-    type: object
-    additionalProperties:
-      type: object
-      properties:
-        model_name:
-          description: The name of the model used for this score.
-          type: string
-        model_version:
-          description: The version of the model used for this score.
-          type: string
-        prediction:
-          description: A list of predictions made by this model.
-          type: array
-          items:
-            type: string
-        probability:
-          description: >
-            A list of probabilities made by this model.
-            Each element is a key/value with a probability name and a probability value.
-          type: object
-          additionalProperties:
-            type: number
-      required:
-        - model_name
-        - model_version
-        - prediction
-        - probability
-
-  errors:
-    description: Errors that occured when models attempted to score this revision. Each error uses the model name as a map key.
-    type: object
-    additionalProperties:
-      type: object
-      properties:
-        model_name:
-          description: The name of the model that encountered this error.
-          type: string
-        model_version:
-          description: The version of the model that encountered this error.
-          type: string
-        type:
-          description: The short name of this error
-          type: string
-        message:
-          description: A human-readable explanation of what went wrong
-          type: string
-      required:
-        - model_name
-        - model_version
-        - type
-        - message
-
-examples:
-  - $schema: { $ref: '#/$id' }
-    dt: '2020-06-10T18:53:00Z'
-    meta:
-      uri: https://examplewiki.wikipedia.org/wiki/TestPage10
-      dt: '2020-06-10T18:57:16Z'
-      domain: test.wikipedia.org
-      stream: mediawiki.revision-score
-    database: examplewiki
-    page_id: 123
-    page_title: TestPage10
-    page_namespace: 0
-    page_is_redirect: false
-    rev_id: 123
-    rev_timestamp: '2020-06-10T18:53:00Z'
-    performer:
-      user_text: example_user_text
-      user_groups:
-      - "*"
-      - user
-      - autoconfirmed
-      user_is_bot: false
-      user_id: 123
-      user_registration_dt: '2016-01-29T21:13:24Z'
-      user_edit_count: 1
-    rev_parent_id: 122
-    scores:
-      example_model:
-        model_name: example_model
-        model_version: 1.0.1
-        prediction:
-        - yes
-        - mostly
-        probability:
-          yes: 0.99
-          mostly: 0.9
-          hardly: 0.01
diff --git a/jsonschema/mediawiki/revision/score/latest b/jsonschema/mediawiki/revision/score/latest
deleted file mode 120000
index 2ccb6c9..0000000
--- a/jsonschema/mediawiki/revision/score/latest
+++ /dev/null
@@ -1 +0,0 @@
-3.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/score/latest.yaml b/jsonschema/mediawiki/revision/score/latest.yaml
deleted file mode 120000
index 2ccb6c9..0000000
--- a/jsonschema/mediawiki/revision/score/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-3.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/tags-change/1.0.0 b/jsonschema/mediawiki/revision/tags-change/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/revision/tags-change/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/tags-change/1.0.0.yaml b/jsonschema/mediawiki/revision/tags-change/1.0.0.yaml
deleted file mode 100644
index 6b67a60..0000000
--- a/jsonschema/mediawiki/revision/tags-change/1.0.0.yaml
+++ /dev/null
@@ -1,216 +0,0 @@
-title: mediawiki/revision/tags-change
-description: Represents a MW revision tags change event
-$id: /mediawiki/revision/tags-change/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - rev_id
-  - rev_timestamp
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  chronology_id:
-    description: Deprecated - no longer populated
-    type: string
-  comment:
-    description: The comment left by the user that performed this change.
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The page ID of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This fact is ultimately represented
-      by revision content containing redirect wikitext.  If this revision is the
-      head revision of the page, then the page will also be a redirect.
-    type: boolean
-  page_namespace:
-    description: The namespace of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page this revision belongs to.
-    type: string
-    minLength: 1
-  parsedcomment:
-    description: >
-      The comment left by the user that performed this change parsed into simple
-      HTML. Optional
-    type: string
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  prior_state:
-    description: >
-      The prior state of the entity before this event. If the field is not
-      present, the revision has no tags before the event has happened.
-    type: object
-    properties:
-      tags:
-        description: The list of tags before the event has happened.
-        type: array
-        items:
-          type: string
-  rev_content_format:
-    description: The content format of the revision.
-    type: string
-  rev_content_model:
-    description: The content model of the revision.
-    type: string
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_len:
-    description: The length of the revision text in bytes.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  rev_minor_edit:
-    description: Flag identifying if the revision is minor.
-    type: boolean
-  rev_parent_id:
-    description: The parent revison ID of the revision that this event represents.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_sha1:
-    description: The sha1 of the revision text.
-    type: string
-  rev_timestamp:
-    description: >
-      The revision's creation time in ISO8601 format.  This field does not end
-      in '_dt' to better match the field name on the Mediawiki revision table.
-    type: string
-    format: date-time
-    maxLength: 128
-  tags:
-    description: >
-      The list of tags after the event has happened. If the tags field is not
-      present, the revision has no tags after the event has happened.
-    type: array
-    items:
-      type: string
-examples:
-  - $schema: /mediawiki/revision/tags-change/1.0.0
-    database: examplewiki
-    meta:
-      domain: test.wikipedia.org
-      dt: '2020-06-10T18:57:16Z'
-      stream: mediawiki.revision-tags-change
-      uri: 'https://examplewiki.wikipedia.org/wiki/TestPage10'
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: TestPage10
-    performer:
-      user_edit_count: 1
-      user_groups:
-        - '*'
-        - user
-        - autoconfirmed
-      user_id: 123
-      user_is_bot: false
-      user_registration_dt: '2016-01-29T21:13:24Z'
-      user_text: example_user_text
-    rev_content_changed: true
-    rev_content_format: text/x-wiki
-    rev_content_model: wikitext
-    rev_id: 123
-    rev_len: 3
-    rev_minor_edit: false
-    rev_parent_id: 122
-    rev_sha1: mr0szy90m5qbn6tek7ch3nebaild3tm
-    rev_timestamp: '2020-06-10T18:57:16Z'
-    tags:
-      - example_tag
diff --git a/jsonschema/mediawiki/revision/tags-change/CHANGELOG.md b/jsonschema/mediawiki/revision/tags-change/CHANGELOG.md
deleted file mode 100644
index e087fa8..0000000
--- a/jsonschema/mediawiki/revision/tags-change/CHANGELOG.md
+++ /dev/null
@@ -1,8 +0,0 @@
-### Version 1.0.0
- - Updated to draft-07 new schema conventions.
-
-### Version 3
- - Added `chronology_id` field.
-
-### Version 2
- - Removed `rev_content_changed` property.
diff --git a/jsonschema/mediawiki/revision/tags-change/current.yaml b/jsonschema/mediawiki/revision/tags-change/current.yaml
deleted file mode 100644
index b935404..0000000
--- a/jsonschema/mediawiki/revision/tags-change/current.yaml
+++ /dev/null
@@ -1,103 +0,0 @@
-title: mediawiki/revision/tags-change
-description: Represents a MW revision tags change event
-$id: /mediawiki/revision/tags-change/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  ### revision entity fields - all revision related events should have these.
-  - $ref: /fragment/mediawiki/revision/common/1.0.0#
-  ### revision/tags-change specific fields
-  - properties:
-      chronology_id:
-        description: Deprecated - no longer populated
-        type: string
-
-      comment:
-        description: The comment left by the user that performed this change.
-        type: string
-
-      parsedcomment:
-        description: >
-          The comment left by the user that performed this change
-          parsed into simple HTML. Optional
-        type: string
-
-      rev_sha1:
-        description: The sha1 of the revision text.
-        type: string
-
-      rev_len:
-        description: The length of the revision text in bytes.
-        type: integer
-
-      rev_minor_edit:
-        description: Flag identifying if the revision is minor.
-        type: boolean
-
-      rev_content_model:
-        description: The content model of the revision.
-        type: string
-
-      rev_content_format:
-        description: The content format of the revision.
-        type: string
-
-      page_is_redirect:
-        description: >
-          True if this revision is a redirect.  This
-          fact is ultimately represented by revision content containing
-          redirect wikitext.  If this revision is the head revision
-          of the page, then the page will also be a redirect.
-        type: boolean
-
-      tags:
-        description: >
-          The list of tags after the event has happened. If the tags field is not
-          present, the revision has no tags after the event has happened.
-        type: array
-        items:
-          type: string
-
-      prior_state:
-        description: >
-          The prior state of the entity before this event. If the field is not present,
-          the revision has no tags before the event has happened.
-        type: object
-        properties:
-          tags:
-            description: The list of tags before the event has happened.
-            type: array
-            items:
-              type: string
-examples:
-  - $schema: { $ref: '#/$id' }
-    meta:
-      uri: https://examplewiki.wikipedia.org/wiki/TestPage10
-      dt: '2020-06-10T18:57:16Z'
-      domain: test.wikipedia.org
-      stream: mediawiki.revision-tags-change
-    database: examplewiki
-    page_id: 123
-    page_title: TestPage10
-    page_namespace: 0
-    rev_id: 123
-    rev_timestamp: '2020-06-10T18:57:16Z'
-    rev_sha1: mr0szy90m5qbn6tek7ch3nebaild3tm
-    rev_minor_edit: false
-    rev_len: 3
-    rev_content_model: wikitext
-    rev_content_format: text/x-wiki
-    performer:
-      user_text: example_user_text
-      user_groups:
-      - "*"
-      - user
-      - autoconfirmed
-      user_is_bot: false
-      user_id: 123
-      user_registration_dt: '2016-01-29T21:13:24Z'
-      user_edit_count: 1
-    page_is_redirect: false
-    rev_parent_id: 122
-    rev_content_changed: true
-    tags: [example_tag]
diff --git a/jsonschema/mediawiki/revision/tags-change/latest b/jsonschema/mediawiki/revision/tags-change/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/revision/tags-change/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/tags-change/latest.yaml b/jsonschema/mediawiki/revision/tags-change/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/revision/tags-change/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/visibility-change/1.0.0 b/jsonschema/mediawiki/revision/visibility-change/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/revision/visibility-change/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/visibility-change/1.0.0.yaml b/jsonschema/mediawiki/revision/visibility-change/1.0.0.yaml
deleted file mode 100644
index 9439bbc..0000000
--- a/jsonschema/mediawiki/revision/visibility-change/1.0.0.yaml
+++ /dev/null
@@ -1,245 +0,0 @@
-title: mediawiki/revision/visibility-change
-description: Represents a MW Revision Visibiilty Change event.
-$id: /mediawiki/revision/visibility-change/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - database
-  - meta
-  - page_id
-  - page_is_redirect
-  - page_namespace
-  - page_title
-  - prior_state
-  - rev_id
-  - rev_timestamp
-  - visibility
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  chronology_id:
-    description: Deprecated - no longer populated
-    type: string
-  comment:
-    description: The comment left by the user that performed this change.
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  page_id:
-    description: The page ID of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 1
-  page_is_redirect:
-    description: >
-      True if this revision is a redirect.  This fact is ultimately represented
-      by revision content containing redirect wikitext.  If this revision is the
-      head revision of the page, then the page will also be a redirect.
-    type: boolean
-  page_namespace:
-    description: The namespace of the page this revision belongs to.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  page_title:
-    description: The normalized title of the page this revision belongs to.
-    type: string
-    minLength: 1
-  parsedcomment:
-    description: >
-      The comment left by the user that performed this change parsed into simple
-      HTML. Optional
-    type: string
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  prior_state:
-    description: >
-      The prior state of the entity before this event.  Revisions always have
-      visibility settings, so this object will always contain the visibility
-      settings for the revision before this event.
-    type: object
-    properties:
-      visibility:
-        description: The prior visiblity state of this revision.
-        type: object
-        required:
-          - text
-          - user
-          - comment
-        properties:
-          comment:
-            type: boolean
-          text:
-            type: boolean
-          user:
-            type: boolean
-  rev_content_format:
-    description: The content format of the revision.
-    type: string
-  rev_content_model:
-    description: The content model of the revision.
-    type: string
-  rev_id:
-    description: The (database) revision ID.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_len:
-    description: The length of the revision text in bytes.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  rev_minor_edit:
-    description: Flag identifying if the revision is minor.
-    type: boolean
-  rev_parent_id:
-    description: The parent revison ID of the revision that this event represents.
-    type: integer
-    maximum: 9007199254740991
-    minimum: 0
-  rev_sha1:
-    description: The sha1 of the revision text.
-    type: string
-  rev_timestamp:
-    description: >
-      The revision's creation time in ISO8601 format.  This field does not end
-      in '_dt' to better match the field name on the Mediawiki revision table.
-    type: string
-    format: date-time
-    maxLength: 128
-  visibility:
-    description: The visiblity state of this revision.
-    type: object
-    required:
-      - text
-      - user
-      - comment
-    properties:
-      comment:
-        description: Whether the comment of the revision is visible.
-        type: boolean
-      text:
-        description: Whether the revision's text is visible.
-        type: boolean
-      user:
-        description: Whether the author of the revision's text is visible.
-        type: boolean
-examples:
-  - $schema: /mediawiki/revision/visibility-change/1.0.0
-    database: examplewiki
-    meta:
-      domain: test.wikipedia.org
-      dt: '2020-06-10T18:57:16Z'
-      stream: mediawiki.revision-visibility-change
-      uri: 'https://examplewiki.wikipedia.org/wiki/TestPage10'
-    page_id: 123
-    page_is_redirect: false
-    page_namespace: 0
-    page_title: TestPage10
-    performer:
-      user_edit_count: 1
-      user_groups:
-        - '*'
-        - user
-        - autoconfirmed
-      user_id: 123
-      user_is_bot: false
-      user_registration_dt: '2016-01-29T21:13:24Z'
-      user_text: example_user_text
-    prior_state:
-      visibility:
-        comment: true
-        text: true
-        user: true
-    rev_content_changed: true
-    rev_content_format: text/x-wiki
-    rev_content_model: wikitext
-    rev_id: 123
-    rev_len: 3
-    rev_minor_edit: false
-    rev_parent_id: 122
-    rev_sha1: mr0szy90m5qbn6tek7ch3nebaild3tm
-    rev_timestamp: '2020-06-10T18:57:16Z'
-    visibility:
-      comment: true
-      text: false
-      user: true
diff --git a/jsonschema/mediawiki/revision/visibility-change/CHANGELOG.md b/jsonschema/mediawiki/revision/visibility-change/CHANGELOG.md
deleted file mode 100644
index f7d0827..0000000
--- a/jsonschema/mediawiki/revision/visibility-change/CHANGELOG.md
+++ /dev/null
@@ -1,8 +0,0 @@
-### Version 1.0.0
- - Updated to draft-07 new schema conventions.
-
-### Version 3
- - Added `chronology_id` field.
-
-### Version 2
- - Added `minLength: 1` for required string properties.
diff --git a/jsonschema/mediawiki/revision/visibility-change/current.yaml b/jsonschema/mediawiki/revision/visibility-change/current.yaml
deleted file mode 100644
index b8770db..0000000
--- a/jsonschema/mediawiki/revision/visibility-change/current.yaml
+++ /dev/null
@@ -1,135 +0,0 @@
-title: mediawiki/revision/visibility-change
-description: Represents a MW Revision Visibiilty Change event.
-$id: /mediawiki/revision/visibility-change/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-   ### revision fields - all revision related events should have these.
-  - $ref: /fragment/mediawiki/revision/common/1.0.0#
-  ### revision/visibility-change specific fields
-  - properties:
-      chronology_id:
-        description: Deprecated - no longer populated
-        type: string
-
-      comment:
-        description: The comment left by the user that performed this change.
-        type: string
-
-      parsedcomment:
-        description: >
-          The comment left by the user that performed this change
-          parsed into simple HTML. Optional
-        type: string
-
-      rev_sha1:
-        description: The sha1 of the revision text.
-        type: string
-
-      rev_len:
-        description: The length of the revision text in bytes.
-        type: integer
-
-      rev_minor_edit:
-        description: Flag identifying if the revision is minor.
-        type: boolean
-
-      rev_content_model:
-        description: The content model of the revision.
-        type: string
-
-      rev_content_format:
-        description: The content format of the revision.
-        type: string
-
-      page_is_redirect:
-        description: >
-          True if this revision is a redirect.  This
-          fact is ultimately represented by revision content containing
-          redirect wikitext.  If this revision is the head revision
-          of the page, then the page will also be a redirect.
-        type: boolean
-
-      visibility:
-        description: The visiblity state of this revision.
-        type: object
-        properties:
-          text:
-            description: Whether the revision's text is visible.
-            type: boolean
-          user:
-            description: Whether the author of the revision's text is visible.
-            type: boolean
-          comment:
-            description: Whether the comment of the revision is visible.
-            type: boolean
-        required:
-          - text
-          - user
-          - comment
-
-      prior_state:
-        description: >
-          The prior state of the entity before this event.  Revisions always have
-          visibility settings, so this object will always contain the visibility
-          settings for the revision before this event.
-        type: object
-        properties:
-          visibility:
-            description: The prior visiblity state of this revision.
-            type: object
-            properties:
-              text:
-                type: boolean
-              user:
-                type: boolean
-              comment:
-                type: boolean
-            required:
-              - text
-              - user
-              - comment
-
-    required:
-      - visibility
-      - prior_state
-examples:
-  - $schema: { $ref: '#/$id' }
-    meta:
-      uri: https://examplewiki.wikipedia.org/wiki/TestPage10
-      dt: '2020-06-10T18:57:16Z'
-      domain: test.wikipedia.org
-      stream: mediawiki.revision-visibility-change
-    database: examplewiki
-    page_id: 123
-    page_title: TestPage10
-    page_namespace: 0
-    rev_id: 123
-    rev_timestamp: '2020-06-10T18:57:16Z'
-    rev_sha1: mr0szy90m5qbn6tek7ch3nebaild3tm
-    rev_minor_edit: false
-    rev_len: 3
-    rev_content_model: wikitext
-    rev_content_format: text/x-wiki
-    performer:
-      user_text: example_user_text
-      user_groups:
-      - "*"
-      - user
-      - autoconfirmed
-      user_is_bot: false
-      user_id: 123
-      user_registration_dt: '2016-01-29T21:13:24Z'
-      user_edit_count: 1
-    page_is_redirect: false
-    rev_parent_id: 122
-    rev_content_changed: true
-    visibility:
-      text: false
-      user: true
-      comment: true
-    prior_state:
-      visibility:
-        text: true
-        user: true
-        comment: true
diff --git a/jsonschema/mediawiki/revision/visibility-change/latest b/jsonschema/mediawiki/revision/visibility-change/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/revision/visibility-change/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/revision/visibility-change/latest.yaml b/jsonschema/mediawiki/revision/visibility-change/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/revision/visibility-change/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/user/blocks-change/1.0.0 b/jsonschema/mediawiki/user/blocks-change/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/mediawiki/user/blocks-change/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/user/blocks-change/1.0.0.yaml b/jsonschema/mediawiki/user/blocks-change/1.0.0.yaml
deleted file mode 100644
index b1b445b..0000000
--- a/jsonschema/mediawiki/user/blocks-change/1.0.0.yaml
+++ /dev/null
@@ -1,216 +0,0 @@
-title: mediawiki/user/blocks-change
-description: Represents a MW User Blocks Change event
-$id: /mediawiki/user/blocks-change/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - blocks
-  - database
-  - meta
-  - user_text
-properties:
-  $schema:
-    type: string
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      uri:
-        type: string
-        format: uri-reference
-        maxLength: 8192
-        description: Unique URI identifying the event or entity
-      request_id:
-        type: string
-        description: Unique ID of the request that caused the event
-      id:
-        type: string
-        description: Unique ID of this event
-      dt:
-        type: string
-        format: date-time
-        maxLength: 128
-        description: 'UTC event datetime, in ISO-8601 format'
-      domain:
-        type: string
-        description: Domain the event or entity pertains to
-        minLength: 1
-      stream:
-        type: string
-        description: Name of the stream/queue/dataset that this event belongs in
-        minLength: 1
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-  comment:
-    description: The comment left by the user that performed this change.
-    type: string
-  user_id:
-    description: >
-      The user id for the target user.  This is optional, and will not be
-      present for anonymous users.
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-    type: integer
-  user_text:
-    description: The text representation of the target user.
-    type: string
-    minLength: 1
-  user_groups:
-    description: |
-      A list of the groups the target user belongs to. E.g. bot, sysop etc.
-    type: array
-    items:
-      type: string
-      minLength: 1
-  blocks:
-    description: |
-      The current state of blocks for the target user of this user change event.
-    type: object
-    required:
-      - name
-      - email
-      - user_talk
-      - account_create
-    properties:
-      name:
-        description: Whether the name or IP should be suppressed (hidden).
-        type: boolean
-      email:
-        description: Whether sending email is blocked.
-        type: boolean
-      user_talk:
-        description: Whether the user is blocked from editing their own talk page.
-        type: boolean
-      account_create:
-        description: Whether the user/IP is blocked from creating accounts.
-        type: boolean
-      expiry_dt:
-        description: >
-          The timestamp the block expires in ISO8601 format. If missing, the
-          blocks do not expire.
-        type: string
-        format: date-time
-        maxLength: 128
-  prior_state:
-    description: >
-      The prior state of the entity before this event. If a top level entity
-      field is not present in this object, then its value has not changed since
-      the prior event.  For user blocks changes, if prior_state is not present,
-      then the User or IP did not have any existing blocks in place at the time
-      this event was emitted.  This does not mean this User or IP never had any
-      blocks.  It is possible that the User's block had automatically expired
-      and were no longer in place when this event was emitted.
-    type: object
-    properties:
-      blocks:
-        description: >
-          The prior state of blocks for the target user of this user change
-          event.
-        type: object
-        required:
-          - name
-          - email
-          - user_talk
-          - account_create
-        properties:
-          name:
-            type: boolean
-          email:
-            type: boolean
-          user_talk:
-            type: boolean
-          account_create:
-            type: boolean
-          expiry_dt:
-            type: string
-            format: date-time
-            maxLength: 128
-examples:
-  - $schema: /mediawiki/user/blocks-change/1.0.0
-    meta:
-      uri: 'https://en.wikipedia.org/wiki/User:ExampleUser'
-      request_id: 12345678-1234-5678-1234-567812345678
-      dt: '2020-01-01T00:00:01Z'
-      domain: en.wikipedia.org
-      stream: mediawiki.user-blocks-change
-    database: examplewiki
-    performer:
-      user_text: PermormerUser
-      user_groups:
-        - user
-        - bot
-      user_is_bot: true
-      user_id: 1234567
-      user_registration_dt: '2019-01-01T00:00:01Z'
-      user_edit_count: 0
-    comment: blocking comment
-    user_text: 1.2.3.4
-    user_groups:
-      - '*'
-    blocks:
-      name: false
-      email: false
-      user_talk: false
-      account_create: true
-      expiry_dt: '2040-01-01T00:00:01Z'
-    prior_state:
-      blocks:
-        name: false
-        email: false
-        user_talk: false
-        account_create: true
-        expiry_dt: '2040-01-01T00:00:01Z'
-
diff --git a/jsonschema/mediawiki/user/blocks-change/1.1.0 b/jsonschema/mediawiki/user/blocks-change/1.1.0
deleted file mode 120000
index ac6cab8..0000000
--- a/jsonschema/mediawiki/user/blocks-change/1.1.0
+++ /dev/null
@@ -1 +0,0 @@
-1.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/user/blocks-change/1.1.0.yaml b/jsonschema/mediawiki/user/blocks-change/1.1.0.yaml
deleted file mode 100644
index 0e2c193..0000000
--- a/jsonschema/mediawiki/user/blocks-change/1.1.0.yaml
+++ /dev/null
@@ -1,278 +0,0 @@
-title: mediawiki/user/blocks-change
-description: Represents a MW User Blocks Change event
-$id: /mediawiki/user/blocks-change/1.1.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - blocks
-  - database
-  - meta
-  - user_text
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  blocks:
-    description: |
-      The current state of blocks for the target user of this user change event.
-    type: object
-    required:
-      - name
-      - email
-      - user_talk
-      - account_create
-    properties:
-      account_create:
-        description: Whether the user/IP is blocked from creating accounts.
-        type: boolean
-      email:
-        description: Whether sending email is blocked.
-        type: boolean
-      expiry_dt:
-        description: >
-          The timestamp the block expires in ISO8601 format. If missing, the
-          blocks do not expire.
-        type: string
-        format: date-time
-        maxLength: 128
-      name:
-        description: Whether the name or IP should be suppressed (hidden).
-        type: boolean
-      restrictions:
-        description: Array of individual restrictions in the block.
-        type: array
-        items:
-          type: object
-          required:
-            - type
-            - value
-          properties:
-            type:
-              description: Type of the restriction
-              type: string
-              enum:
-                - page
-                - ns
-            value:
-              description: >
-                Namespace ID for namespace restrictions, page ID for page
-                restrictions.
-              type: integer
-              maximum: 9007199254740991
-              minimum: -9007199254740991
-      sitewide:
-        description: Whether the block is sitewide or partial.
-        type: boolean
-      user_talk:
-        description: Whether the user is blocked from editing their own talk page.
-        type: boolean
-  comment:
-    description: The comment left by the user that performed this change.
-    type: string
-  database:
-    description: The name of the wiki database this event entity belongs to.
-    type: string
-    minLength: 1
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  performer:
-    description: Represents the user that performed this change.
-    type: object
-    required:
-      - user_text
-      - user_groups
-      - user_is_bot
-    properties:
-      user_edit_count:
-        description: >
-          The number of edits this user has made at the time of this event. Not
-          present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: 0
-      user_groups:
-        description: 'A list of the groups this user belongs to.  E.g. bot, sysop etc.'
-        type: array
-        items:
-          type: string
-          minLength: 1
-      user_id:
-        description: >
-          The user id that performed this change.  This is optional, and will
-          not be present for anonymous users.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      user_is_bot:
-        description: >
-          True if this user is considered to be a bot at the time of this event.
-          This is checked via the $user->isBot() method, which considers both
-          user_groups and user permissions.
-        type: boolean
-      user_registration_dt:
-        description: >
-          The datetime of the user account registration. Not present for
-          anonymous users or if missing in the MW database.
-        type: string
-        format: date-time
-        maxLength: 128
-      user_text:
-        description: The text representation of the user that performed this change.
-        type: string
-        minLength: 1
-  prior_state:
-    description: >
-      The prior state of the entity before this event. If a top level entity
-      field is not present in this object, then its value has not changed since
-      the prior event.  For user blocks changes, if prior_state is not present,
-      then the User or IP did not have any existing blocks in place at the time
-      this event was emitted.  This does not mean this User or IP never had any
-      blocks.  It is possible that the User's block had automatically expired
-      and were no longer in place when this event was emitted.
-    type: object
-    properties:
-      blocks:
-        description: >
-          The current state of blocks for the target user of this user change
-          event.
-        type: object
-        required:
-          - name
-          - email
-          - user_talk
-          - account_create
-        properties:
-          account_create:
-            description: Whether the user/IP is blocked from creating accounts.
-            type: boolean
-          email:
-            description: Whether sending email is blocked.
-            type: boolean
-          expiry_dt:
-            description: >
-              The timestamp the block expires in ISO8601 format. If missing, the
-              blocks do not expire.
-            type: string
-            format: date-time
-            maxLength: 128
-          name:
-            description: Whether the name or IP should be suppressed (hidden).
-            type: boolean
-          restrictions:
-            description: Array of individual restrictions in the block.
-            type: array
-            items:
-              type: object
-              required:
-                - type
-                - value
-              properties:
-                type:
-                  description: Type of the restriction
-                  type: string
-                  enum:
-                    - page
-                    - ns
-                value:
-                  description: >
-                    Namespace ID for namespace restrictions, page ID for page
-                    restrictions.
-                  type: integer
-                  maximum: 9007199254740991
-                  minimum: -9007199254740991
-          sitewide:
-            description: Whether the block is sitewide or partial.
-            type: boolean
-          user_talk:
-            description: Whether the user is blocked from editing their own talk page.
-            type: boolean
-  user_groups:
-    description: |
-      A list of the groups the target user belongs to. E.g. bot, sysop etc.
-    type: array
-    items:
-      type: string
-      minLength: 1
-  user_id:
-    description: >
-      The user id for the target user.  This is optional, and will not be
-      present for anonymous users.
-    type: integer
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  user_text:
-    description: The text representation of the target user.
-    type: string
-    minLength: 1
-examples:
-  - $schema: /mediawiki/user/blocks-change/1.1.0
-    blocks:
-      account_create: true
-      email: false
-      expiry_dt: '2040-01-01T00:00:01Z'
-      name: false
-      restrictions:
-        - type: page
-          value: 1
-      user_talk: false
-    comment: blocking comment
-    database: examplewiki
-    meta:
-      domain: en.wikipedia.org
-      dt: '2020-01-01T00:00:01Z'
-      request_id: 12345678-1234-5678-1234-567812345678
-      stream: mediawiki.user-blocks-change
-      uri: 'https://en.wikipedia.org/wiki/User:ExampleUser'
-    performer:
-      user_edit_count: 0
-      user_groups:
-        - user
-        - bot
-      user_id: 1234567
-      user_is_bot: true
-      user_registration_dt: '2019-01-01T00:00:01Z'
-      user_text: PermormerUser
-    prior_state:
-      blocks:
-        account_create: true
-        email: false
-        expiry_dt: '2040-01-01T00:00:01Z'
-        name: false
-        restrictions:
-          - type: page
-            value: 2
-        user_talk: false
-    user_groups:
-      - '*'
-    user_text: 1.2.3.4
diff --git a/jsonschema/mediawiki/user/blocks-change/CHANGELOG.md b/jsonschema/mediawiki/user/blocks-change/CHANGELOG.md
deleted file mode 100644
index 5c79a7f..0000000
--- a/jsonschema/mediawiki/user/blocks-change/CHANGELOG.md
+++ /dev/null
@@ -1,9 +0,0 @@
-### Version 1.1.0
-- Added `sitewide` boolean to block schema
-- Added `restrictions` array to the block schema
-
-### Version 1.0.0
- - Updated to draft-07 new schema conventions.
-
-### Version 2
- - Added `minLength: 1` for required string properties.
\ No newline at end of file
diff --git a/jsonschema/mediawiki/user/blocks-change/current.yaml b/jsonschema/mediawiki/user/blocks-change/current.yaml
deleted file mode 100644
index dd6fd73..0000000
--- a/jsonschema/mediawiki/user/blocks-change/current.yaml
+++ /dev/null
@@ -1,146 +0,0 @@
-title: mediawiki/user/blocks-change
-description: Represents a MW User Blocks Change event
-$id: /mediawiki/user/blocks-change/1.1.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/mediawiki/common/1.0.0#
-  - properties:
-      comment:
-        description: The comment left by the user that performed this change.
-        type: string
-
-      ### user entity fields - all user related events should have these.
-      user_id:
-        description: >
-          The user id for the target user.  This is optional, and
-          will not be present for anonymous users.
-        type: integer
-
-      user_text:
-        description: The text representation of the target user.
-        type: string
-        minLength: 1
-
-      user_groups:
-        description: >
-          A list of the groups the target user belongs to.
-          E.g. bot, sysop etc.
-        type: array
-        items:
-          type: string
-          minLength: 1
-
-
-      ### user/blocks_change specific fields
-      blocks: &block_schema
-        description: >
-          The current state of blocks for the target user of this user change event.
-        type: object
-        properties:
-          name:
-            description: Whether the name or IP should be suppressed (hidden).
-            type: boolean
-          email:
-            description: Whether sending email is blocked.
-            type: boolean
-          user_talk:
-            description: Whether the user is blocked from editing their own talk page.
-            type: boolean
-          account_create:
-            description: Whether the user/IP is blocked from creating accounts.
-            type: boolean
-          expiry_dt:
-            description: >
-              The timestamp the block expires in ISO8601 format.
-              If missing, the blocks do not expire.
-            type: string
-            format: date-time
-            maxLength: 128
-          sitewide:
-            description: Whether the block is sitewide or partial.
-            type: boolean
-          restrictions:
-            description: Array of individual restrictions in the block.
-            type: array
-            items:
-              type: object
-              properties:
-                type:
-                  description: Type of the restriction
-                  type: string
-                  enum:
-                    - page
-                    - ns
-                value:
-                  type: integer
-                  description: >
-                    Namespace ID for namespace restrictions, page ID for page restrictions.
-              required:
-                - type
-                - value
-        required:
-          - name
-          - email
-          - user_talk
-          - account_create
-
-      prior_state:
-        description: >
-          The prior state of the entity before this event. If a top level entity
-          field is not present in this object, then its value has not changed
-          since the prior event.  For user blocks changes, if prior_state is not
-          present, then the User or IP did not have any existing blocks in place
-          at the time this event was emitted.  This does not mean this User
-          or IP never had any blocks.  It is possible that the User's block
-          had automatically expired and were no longer in place when this event
-          was emitted.
-        type: object
-        properties:
-          blocks: *block_schema
-
-required:
-  - user_text
-  - blocks
-
-examples:
-  - $schema: { $ref: '#/$id' }
-    meta:
-      uri: https://en.wikipedia.org/wiki/User:ExampleUser
-      request_id: 12345678-1234-5678-1234-567812345678
-      dt: '2020-01-01T00:00:01Z'
-      domain: en.wikipedia.org
-      stream: mediawiki.user-blocks-change
-    database: examplewiki
-    performer:
-      user_text: PermormerUser
-      user_groups:
-        - user
-        - bot
-      user_is_bot: true
-      user_id: 1234567
-      user_registration_dt: '2019-01-01T00:00:01Z'
-      user_edit_count: 0
-    comment: 'blocking comment'
-    user_text: 1.2.3.4
-    user_groups:
-      - "*"
-    blocks:
-      name: false
-      email: false
-      user_talk: false
-      account_create: true
-      expiry_dt: '2040-01-01T00:00:01Z'
-      restrictions:
-        - type: page
-          value: 1
-    prior_state:
-      blocks:
-        name: false
-        email: false
-        user_talk: false
-        account_create: true
-        expiry_dt: '2040-01-01T00:00:01Z'
-        restrictions:
-          - type: page
-            value: 2
diff --git a/jsonschema/mediawiki/user/blocks-change/latest b/jsonschema/mediawiki/user/blocks-change/latest
deleted file mode 120000
index ac6cab8..0000000
--- a/jsonschema/mediawiki/user/blocks-change/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/mediawiki/user/blocks-change/latest.yaml b/jsonschema/mediawiki/user/blocks-change/latest.yaml
deleted file mode 120000
index ac6cab8..0000000
--- a/jsonschema/mediawiki/user/blocks-change/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.1.0.yaml
\ No newline at end of file
diff --git a/jsonschema/resource_change/1.0.0 b/jsonschema/resource_change/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/resource_change/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/resource_change/1.0.0.yaml b/jsonschema/resource_change/1.0.0.yaml
deleted file mode 100644
index 4366fbe..0000000
--- a/jsonschema/resource_change/1.0.0.yaml
+++ /dev/null
@@ -1,76 +0,0 @@
-title: resource_change
-description: Represents a change in a resource tied to the specified URI
-$id: /resource_change/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  root_event:
-    description: Unique identifier of the root event that triggered this event creation
-    type: object
-    required:
-      - dt
-      - signature
-    properties:
-      dt:
-        description: 'the timestamp of the root event, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      signature:
-        description: the unique signature of root event
-        type: string
-  tags:
-    description: the list of tags associated with the change event for the resource
-    type: array
-    items:
-      type: string
-    uniqueItems: true
-  triggered_by:
-    description: >
-      comma-separated list of event descriptions in `<topic>:<uri>` format, that
-      represent a chain of events that caused this event to be emitted.
-    type: string
-examples:
-  - $schema: /resource_change/1.0.0
-    meta:
-      dt: '2020-07-01T00:00:00Z'
-      stream: resource_change_example
-      uri: /example/resource/uri
diff --git a/jsonschema/resource_change/CHANGELOG.md b/jsonschema/resource_change/CHANGELOG.md
deleted file mode 100644
index 9be2786..0000000
--- a/jsonschema/resource_change/CHANGELOG.md
+++ /dev/null
@@ -1,5 +0,0 @@
-### Version 1.0.0
- - Updated to draft-07 new schema conventions.
-
-### Version 2
- - Added `minLength: 1` for required string properties.
\ No newline at end of file
diff --git a/jsonschema/resource_change/current.yaml b/jsonschema/resource_change/current.yaml
deleted file mode 100644
index bec70fd..0000000
--- a/jsonschema/resource_change/current.yaml
+++ /dev/null
@@ -1,43 +0,0 @@
-title: resource_change
-description: Represents a change in a resource tied to the specified URI
-$id: /resource_change/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/common/1.0.0#
-  - properties:
-      tags:
-        type: array
-        items:
-          type: string
-        uniqueItems: true
-        description: the list of tags associated with the change event for the resource
-      triggered_by:
-        type: string
-        description: >
-          comma-separated list of event descriptions in `<topic>:<uri>` format,
-          that represent a chain of events that caused this event to be emitted.
-
-      # Deduplication information
-      root_event:
-        type: object
-        description: Unique identifier of the root event that triggered this event creation
-        properties:
-          dt:
-            description: the timestamp of the root event, in ISO-8601 format
-            type: string
-            format: date-time
-            maxLength: 128
-          signature:
-            type: string
-            description: the unique signature of root event
-        required:
-          - dt
-          - signature
-examples:
-  - $schema: { $ref: "#/$id" }
-    meta:
-      stream: resource_change_example
-      dt: '2020-07-01T00:00:00Z'
-      uri: '/example/resource/uri'
-
diff --git a/jsonschema/resource_change/latest b/jsonschema/resource_change/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/resource_change/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/resource_change/latest.yaml b/jsonschema/resource_change/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/resource_change/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/test/event/0.0.2 b/jsonschema/test/event/0.0.2
deleted file mode 120000
index 0747b15..0000000
--- a/jsonschema/test/event/0.0.2
+++ /dev/null
@@ -1 +0,0 @@
-0.0.2.yaml
\ No newline at end of file
diff --git a/jsonschema/test/event/0.0.2.yaml b/jsonschema/test/event/0.0.2.yaml
deleted file mode 100644
index af2f268..0000000
--- a/jsonschema/test/event/0.0.2.yaml
+++ /dev/null
@@ -1,53 +0,0 @@
-title: test/event
-description: Schema used for simple tests
-$id: /test/event/0.0.2
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-properties:
-  # global event fields
-  $schema:
-    type: string
-    description: >
-      The URI identifying the jsonschema for this event. This may be just
-      a short uri containing only the name and revision at the end of the
-      URI path.  e.g. /schema_name/12345 is acceptable. This often will
-      (and should) match the schema's $id field.
-  meta:
-    type: object
-    properties:
-      uri:
-        type: string
-        format: uri-reference
-        maxLength: 8192
-        description: the unique URI identifying the event / resource
-      request_id:
-        type: string
-        description: The unique ID of the request that caused the event.
-      id:
-        type: string
-        pattern: '^[a-fA-F0-9]{8}(-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}$'
-        maxLength: 36
-        description: the unique ID of this event; should match the dt field
-      dt:
-        type: string
-        format: date-time
-        maxLength: 128
-        description: the time stamp of the event, in ISO8601 format
-      domain:
-        type: string
-        description: the domain the event pertains to
-        minLength: 1
-      stream:
-        type: string
-        description: The name of the stream/queue that this event belongs in.
-        minLength: 1
-    required:
-      - id
-      - dt
-      - domain
-  # event-specific fields
-  test:
-    type: string
-    default: default test value
-examples:
-  - {"$schema": "/test/event/0.0.2", "meta": {"stream": "test.event", "id": "12345678-1234-5678-1234-567812345678", "dt": "2019-01-01T00:00:00Z", "domain": "wikimedia.org"}, "test": "specific test value"}
diff --git a/jsonschema/test/event/0.0.3 b/jsonschema/test/event/0.0.3
deleted file mode 120000
index 0875e0b..0000000
--- a/jsonschema/test/event/0.0.3
+++ /dev/null
@@ -1 +0,0 @@
-0.0.3.yaml
\ No newline at end of file
diff --git a/jsonschema/test/event/0.0.3.yaml b/jsonschema/test/event/0.0.3.yaml
deleted file mode 100644
index 1520394..0000000
--- a/jsonschema/test/event/0.0.3.yaml
+++ /dev/null
@@ -1,62 +0,0 @@
-title: test/event
-description: Schema used for simple tests
-$id: /test/event/0.0.3
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-properties:
-  # global event fields
-  $schema:
-    type: string
-    description: >
-      The URI identifying the jsonschema for this event. This may be just
-      a short uri containing only the name and revision at the end of the
-      URI path.  e.g. /schema_name/12345 is acceptable. This often will
-      (and should) match the schema's $id field.
-  meta:
-    type: object
-    properties:
-      uri:
-        type: string
-        format: uri-reference
-        maxLength: 8192
-        description: the unique URI identifying the event / resource
-      request_id:
-        type: string
-        description: The unique ID of the request that caused the event.
-      id:
-        type: string
-        pattern: '^[a-fA-F0-9]{8}(-[a-fA-F0-9]{4}){3}-[a-fA-F0-9]{12}$'
-        maxLength: 36
-        description: the unique ID of this event.
-      dt:
-        type: string
-        format: date-time
-        maxLength: 128
-        description: the time stamp of the event, in ISO8601 format
-      domain:
-        type: string
-        description: the domain the event pertains to
-        minLength: 1
-      stream:
-        type: string
-        description: The name of the stream/queue that this event belongs in.
-        minLength: 1
-    required:
-      - id
-      - dt
-      - domain
-  # event-specific fields
-  test:
-    type: string
-    default: default test value
-
-  test_map:
-    description: >
-      We want to support 'map' types using additionalProperties to specify
-      the value types.  (Keys are always strings.)
-    type: object
-    additionalProperties:
-      type: string
-
-examples:
-  - {"$schema": "/test/event/0.0.3", "meta": {"stream": "test.event", "id": "12345678-1234-5678-1234-567812345678", "dt": "2019-01-01T00:00:00Z", "domain": "wikimedia.org"}, "test": "specific test value", "test_map": {"key1": "val1", "key2": "val2"}}
diff --git a/jsonschema/test/event/1.0.0 b/jsonschema/test/event/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/test/event/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/test/event/1.0.0.yaml b/jsonschema/test/event/1.0.0.yaml
deleted file mode 100644
index 87ff456..0000000
--- a/jsonschema/test/event/1.0.0.yaml
+++ /dev/null
@@ -1,63 +0,0 @@
-title: test/event
-description: Schema used for simple tests
-$id: /test/event/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-required:
-  - $schema
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  test:
-    type: string
-    default: default value
-  test_map:
-    description: >
-      We want to support 'map' types using additionalProperties to specify the
-      value types.  (Keys are always strings.)
-    type: object
-    additionalProperties:
-      type: string
-examples:
-  - $schema: /test/event/1.0.0
-    meta:
-      dt: '2019-01-01T00:00:00Z'
-      stream: test.event.example
-    test: specific test value
-    test_map:
-      key1: val1
-      key2: val2
diff --git a/jsonschema/test/event/CHANGELOG.md b/jsonschema/test/event/CHANGELOG.md
deleted file mode 100644
index e5d39ae..0000000
--- a/jsonschema/test/event/CHANGELOG.md
+++ /dev/null
@@ -1,13 +0,0 @@
-# 0.0.3
-- Add test_map field
-
-# 0.0.2
-- switch to semver versioning 0.0.2 is after 1.yaml
-- Don't use .yaml in filenames anymore, makes URIs cleaner
-- switch to JSONSchema Draft 7
-- use $schema instead of meta.schema, meta.schema has been removed.
-- use meta.stream instead of meta.topic, meta.topic has beren removed.
-- set $id to the relative schema URI
-- meta.uri is no longer required, as it wasn't always meaningful
-- meta.uri format is now uri-reference instead of uri to support relative URIs.
-- Use maxLength in meta.id and meta.dt
\ No newline at end of file
diff --git a/jsonschema/test/event/current.yaml b/jsonschema/test/event/current.yaml
deleted file mode 100644
index cbab1e5..0000000
--- a/jsonschema/test/event/current.yaml
+++ /dev/null
@@ -1,28 +0,0 @@
-title: test/event
-description: Schema used for simple tests
-$id: /test/event/1.0.0
-$schema: https://json-schema.org/draft-07/schema#
-type: object
-allOf:
-  - $ref: /fragment/common/1.0.0#
-  - properties:
-      test:
-        type: string
-        default: default value
-
-      test_map:
-        description: >
-          We want to support 'map' types using additionalProperties to specify
-          the value types.  (Keys are always strings.)
-        type: object
-        additionalProperties:
-          type: string
-examples: 
-  - $schema: { $ref: "#/$id" }
-    meta:
-      stream: test.event.example
-      dt: '2019-01-01T00:00:00Z'
-    test: specific test value
-    test_map:
-      key1: val1
-      key2: val2
diff --git a/jsonschema/test/event/latest b/jsonschema/test/event/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/test/event/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/test/event/latest.yaml b/jsonschema/test/event/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/test/event/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/w3c/reportingapi/network_error/1.0.0 b/jsonschema/w3c/reportingapi/network_error/1.0.0
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/w3c/reportingapi/network_error/1.0.0
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/w3c/reportingapi/network_error/1.0.0.yaml b/jsonschema/w3c/reportingapi/network_error/1.0.0.yaml
deleted file mode 100644
index c31504e..0000000
--- a/jsonschema/w3c/reportingapi/network_error/1.0.0.yaml
+++ /dev/null
@@ -1,225 +0,0 @@
-title: w3c/reportingapi/network_error
-description: >
-  Browser-generated problem reports, as described by the W3C Reporting API.
-  https://www.w3.org/TR/reporting/ This schema only accomodates the Network
-  Error Logging API, and not the other report types available in the Reporting
-  API. See https://w3c.github.io/network-error-logging/
-$id: /w3c/reportingapi/network_error/1.0.0
-$schema: 'https://json-schema.org/draft-07/schema#'
-type: object
-additionalProperties: false
-required:
-  - $schema
-  - meta
-properties:
-  $schema:
-    description: >
-      A URI identifying the JSONSchema for this event. This should match an
-      schema's $id in a schema repository. E.g. /schema/title/1.0.0
-    type: string
-  type:
-    description: 'The flavor of the report, like ''network-error'' or ''hpkp''.'
-    type: string
-  age:
-    description: >
-      The number of milliseconds between the report's timestamp and the time the
-      report was sent.
-    type: number
-    maximum: 9007199254740991
-    minimum: -9007199254740991
-  body:
-    description: 'The body of the report, with details on what failed and how.'
-    type: object
-    additionalProperties:
-      type: string
-    properties:
-      type:
-        description: >
-          A string describing the kind of failure that occurred, like
-          "dns.unreachable", "tcp.refused", "http.response.redirect_loop", etc.
-          See
-          https://w3c.github.io/network-error-logging/#predefined-network-error-types
-        type: string
-      elapsed_time:
-        description: >
-          In a network-error report, this is the number of milliseconds between
-          the start of the failed request and when it was completed or aborted
-          by the user agent.
-        type: number
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      method:
-        description: >
-          The HTTP method name used when attempting to fetch the failed request
-          (e.g. "GET", "POST", etc)
-        type: string
-      phase:
-        description: |
-          The phase at which the request failed.
-        type: string
-        enum:
-          - dns
-          - connection
-          - application
-      protocol:
-        description: >
-          If available, this is the network protocol used to fetch the request
-          that failed, as identified by the ALPN Protocol ID, or "".
-        type: string
-      referrer:
-        description: |
-          The HTTP Referer header that was sent with the request that failed.
-        type: string
-      sampling_fraction:
-        description: >
-          The sampling_fraction originally requested by the origin server in its
-          NEL response header.
-        type: number
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-      server_ip:
-        description: >
-          Either the IP address of the server to which the user agent sent the
-          failed request, or "".
-        type: string
-      status_code:
-        description: >
-          Either the HTTP response code of the failed request, or 0 if not
-          applicable.
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-  http:
-    type: object
-    properties:
-      client_ip:
-        description: >-
-          The http client's IP address, usually set from the X-Client-IP header,
-          the value of which is extracted from X-Forwarded-For.
-        type: string
-      has_cookies:
-        description: True if the http request has any cookies set
-        type: boolean
-      method:
-        description: 'The HTTP request method (GET, POST, etc.)'
-        type: string
-      protocol:
-        description: The protocol used for the request (HTTP or HTTPS)
-        type: string
-      request_headers:
-        description: 'Request headers sent by the client.  E.g. user-agent, etc.'
-        type: object
-        additionalProperties:
-          type: string
-      response_headers:
-        description: Response headers sent back to the client (when known).
-        type: object
-        additionalProperties:
-          type: string
-      status_code:
-        description: The HTTP status code returned for this request (when known)
-        type: integer
-        maximum: 9007199254740991
-        minimum: -9007199254740991
-  meta:
-    type: object
-    required:
-      - dt
-      - stream
-    properties:
-      domain:
-        description: Domain the event or entity pertains to
-        type: string
-        minLength: 1
-      dt:
-        description: 'UTC event datetime, in ISO-8601 format'
-        type: string
-        format: date-time
-        maxLength: 128
-      id:
-        description: Unique ID of this event
-        type: string
-      request_id:
-        description: Unique ID of the request that caused the event
-        type: string
-      stream:
-        description: Name of the stream/queue/dataset that this event belongs in
-        type: string
-        minLength: 1
-      uri:
-        description: Unique URI identifying the event or entity
-        type: string
-        format: uri-reference
-        maxLength: 8192
-  url:
-    description: The URL that caused the report to be generated.
-    type: string
-  user_agent:
-    description: >
-      The name of the User-Agent used at the time of loading the original URL
-      which caused the report to be generated. This may differ from the
-      User-Agent used in the HTTP request that sent the report due to factors
-      like the original fetch using the "request desktop site" feature.
-    type: string
-examples:
-  - $schema: /w3c/reportingapi/network_error/1.0.0
-    type: network-error
-    age: 0
-    body:
-      type: http.protocol.error
-      elapsed_time: 823
-      method: GET
-      protocol: h2
-      referrer: 'http://example.com/'
-      sampling_fraction: 0.5
-      server_ip: 123.122.121.120
-      status_code: 200
-    meta: &ref_0
-      dt: '2020-09-01T00:00:00Z'
-      stream: w3c.reportingapi.network_error
-    url: 'https://www.example.com/'
-  - $schema: /w3c/reportingapi/network_error/1.0.0
-    type: network-error
-    age: 0
-    body:
-      type: dns.name_not_resolved
-      elapsed_time: 143
-      method: GET
-      protocol: ''
-      referrer: 'https://www.example.com/'
-      sampling_fraction: 1
-      server_ip: ''
-      status_code: 0
-    meta: *ref_0
-    url: 'https://widget.com/thing.js'
-  - $schema: /w3c/reportingapi/network_error/1.0.0
-    type: network-error
-    age: 0
-    body:
-      type: dns.name_not_resolved
-      elapsed_time: 48
-      method: GET
-      protocol: http/1.1
-      sampling_fraction: 1
-      server_ip: ''
-      status_code: 0
-    meta: *ref_0
-    url: 'https://new-subdomain.example.com/'
-  - $schema: /w3c/reportingapi/network_error/1.0.0
-    type: network-error
-    age: 30654
-    body:
-      type: tcp.refused
-      elapsed_time: 108
-      method: GET
-      phase: connection
-      protocol: http/1.1
-      referrer: ''
-      sampling_fraction: 1
-      server_ip: ''
-      status_code: 0
-    meta: *ref_0
-    url: 'https://mcnulty.nucleosynth.space:8443/'
-    user_agent: >-
-      Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko)
-      Chrome/84.0.4147.135 Safari/537.36
diff --git a/jsonschema/w3c/reportingapi/network_error/current.yaml b/jsonschema/w3c/reportingapi/network_error/current.yaml
deleted file mode 100644
index c834824..0000000
--- a/jsonschema/w3c/reportingapi/network_error/current.yaml
+++ /dev/null
@@ -1,83 +0,0 @@
-title: w3c/reportingapi/network_error
-
-description: >
-  Browser-generated problem reports, as described by the W3C Reporting API.
-  https://www.w3.org/TR/reporting/
-  This schema only accomodates the Network Error Logging API, and
-  not the other report types available in the Reporting API.
-  See https://w3c.github.io/network-error-logging/
-
-$id: /w3c/reportingapi/network_error/1.0.0
-
-$schema: https://json-schema.org/draft-07/schema#
-
-type: object
-additionalProperties: false
-allOf:
-  - $ref: /fragment/w3c/reportingapi/report/1.0.0#
-  - properties:
-      body:
-        type: object
-        description: The body of the report, with details on what failed and how.
-        additionalProperties:
-          type: string
-        properties:
-          referrer:
-            type: string
-            description: >
-              The HTTP Referer header that was sent with the request that failed.
-          sampling_fraction:
-            type: number
-            description: >
-              The sampling_fraction originally requested by the origin server
-              in its NEL response header.
-          server_ip:
-            type: string
-            description: >
-              Either the IP address of the server to which the user agent
-              sent the failed request, or "".
-          protocol:
-            type: string
-            description: >
-              If available, this is the network protocol used to fetch the request
-              that failed, as identified by the ALPN Protocol ID, or "".
-          method:
-            type: string
-            description: >
-              The HTTP method name used when attempting to fetch the failed
-              request (e.g. "GET", "POST", etc)
-          status_code:
-            type: integer
-            description: >
-              Either the HTTP response code of the failed request,
-              or 0 if not applicable.
-          elapsed_time:
-            type: number
-            description: >
-              In a network-error report, this is the number of milliseconds
-              between the start of the failed request and when it was completed
-              or aborted by the user agent.
-          phase:
-            type: string
-            enum:
-              - dns
-              - connection
-              - application
-            description: >
-              The phase at which the request failed.
-          type:
-            type: string
-            description: >
-              A string describing the kind of failure that occurred, like
-              "dns.unreachable", "tcp.refused", "http.response.redirect_loop", etc.
-              See https://w3c.github.io/network-error-logging/#predefined-network-error-types
-
-examples:
-  # These are directly from the draft Technical Report, except with $schema and meta added.
-  # https://www.w3.org/TR/network-error-logging/#sample-network-error-reports
-  - {"$schema": { "$ref": "#/$id" }, "meta": {"stream": "w3c.reportingapi.network_error", "dt": "2020-09-01T00:00:00Z"}, "age": 0, "type": "network-error", "url": "https://www.example.com/", "body": {"sampling_fraction": 0.5, "referrer": "http://example.com/", "server_ip": "123.122.121.120", "protocol": "h2", "method": "GET", "status_code": 200, "elapsed_time": 823, "type": "http.protocol.error"}}
-  # NOTE: In these following examples, we $ref the  meta object out of the first example just to DRY it up.
-  - {"$schema": { "$ref": "#/$id" }, "meta": {"$ref": "#/examples/0/meta"}, "age": 0, "type": "network-error", "url": "https://widget.com/thing.js", "body": {"sampling_fraction": 1.0, "referrer": "https://www.example.com/", "server_ip": "", "protocol": "", "method": "GET", "status_code": 0, "elapsed_time": 143, "type": "dns.name_not_resolved"}}
-  - {"$schema": { "$ref": "#/$id" }, "meta": {"$ref": "#/examples/0/meta"}, "age": 0, "type": "network-error", "url": "https://new-subdomain.example.com/", "body": {"sampling_fraction": 1.0, "server_ip": "", "protocol": "http/1.1", "method": "GET", "status_code": 0, "elapsed_time": 48, "type": "dns.name_not_resolved"}}
-  # An actual report as generated by Chrome 85.0.4183.83 (but with $schema and meta added).
-  - {"$schema": { "$ref": "#/$id" }, "meta": {"$ref": "#/examples/0/meta"}, "age": 30654, "body": {"elapsed_time": 108, "method": "GET", "phase": "connection", "protocol": "http/1.1", "referrer": "", "sampling_fraction": 1, "server_ip": "", "status_code": 0, "type": "tcp.refused"}, "type": "network-error", "url": "https://mcnulty.nucleosynth.space:8443/", "user_agent": "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/84.0.4147.135 Safari/537.36"}
diff --git a/jsonschema/w3c/reportingapi/network_error/latest b/jsonschema/w3c/reportingapi/network_error/latest
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/w3c/reportingapi/network_error/latest
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/jsonschema/w3c/reportingapi/network_error/latest.yaml b/jsonschema/w3c/reportingapi/network_error/latest.yaml
deleted file mode 120000
index 7ec1411..0000000
--- a/jsonschema/w3c/reportingapi/network_error/latest.yaml
+++ /dev/null
@@ -1 +0,0 @@
-1.0.0.yaml
\ No newline at end of file
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index fcee231..0000000
--- a/package-lock.json
+++ /dev/null
@@ -1,2105 +0,0 @@
-{
-  "name": "schemas-event-primary",
-  "version": "1.0.0",
-  "lockfileVersion": 1,
-  "requires": true,
-  "dependencies": {
-    "@babel/code-frame": {
-      "version": "7.22.13",
-      "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.22.13.tgz",
-      "integrity": "sha512-XktuhWlJ5g+3TJXc5upd9Ks1HutSArik6jf2eAjYFyIOf4ej3RN+184cZbzDvbPnuTJIUhPKKJE3cIsYTiAT3w==",
-      "dev": true,
-      "requires": {
-        "@babel/highlight": "^7.22.13",
-        "chalk": "^2.4.2"
-      }
-    },
-    "@babel/helper-validator-identifier": {
-      "version": "7.22.15",
-      "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.15.tgz",
-      "integrity": "sha512-4E/F9IIEi8WR94324mbDUMo074YTheJmd7eZF5vITTeYchqAi6sYXRLHUVsmkdmY4QjfKTcB2jB7dVP3NaBElQ==",
-      "dev": true
-    },
-    "@babel/highlight": {
-      "version": "7.22.13",
-      "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.22.13.tgz",
-      "integrity": "sha512-C/BaXcnnvBCmHTpz/VGZ8jgtE2aYlW4hxDhseJAWZb7gqGM/qtCK6iZUb0TyKFf7BOUsBH7Q7fkRsDRhg1XklQ==",
-      "dev": true,
-      "requires": {
-        "@babel/helper-validator-identifier": "^7.22.5",
-        "chalk": "^2.4.2",
-        "js-tokens": "^4.0.0"
-      }
-    },
-    "@hapi/bourne": {
-      "version": "1.3.2",
-      "resolved": "https://registry.npmjs.org/@hapi/bourne/-/bourne-1.3.2.tgz",
-      "integrity": "sha512-1dVNHT76Uu5N3eJNTYcvxee+jzX4Z9lfciqRRHCU27ihbUcYi+iSc2iml5Ke1LXe1SyJCLA0+14Jh4tXJgOppA==",
-      "dev": true
-    },
-    "@wikimedia/jsonschema-tools": {
-      "version": "1.1.0",
-      "resolved": "https://registry.npmjs.org/@wikimedia/jsonschema-tools/-/jsonschema-tools-1.1.0.tgz",
-      "integrity": "sha512-q8Nes8IbYQBYCDQJw8qKMfeHFBbME0hzkC3AJc/FpA9CGNSWwkOM4JsDr0VZKZTB4I9/Hb10CDeC8PcuBUE1LQ==",
-      "dev": true,
-      "requires": {
-        "ajv": "^6.10.2",
-        "bluebird": "^3.5.5",
-        "fs-extra": "^9.0.0",
-        "hosted-git-info": "^4.0.2",
-        "js-yaml": "^3.13.1",
-        "json-schema-faker": "0.5.0-rcv.34",
-        "json-schema-merge-allof": "^0.6.0",
-        "json-schema-ref-parser": "^7.1.1",
-        "json-schema-traverse": "^0.4.1",
-        "json-stable-stringify": "^1.0.1",
-        "lodash": "^4.17.15",
-        "netmask": "^2.0.1",
-        "pino": "^5.13.2",
-        "pino-pretty": "^3.2.1",
-        "recursive-readdir-sync": "^1.0.6",
-        "rewire": "^5.0.0",
-        "semver": "^6.3.0",
-        "yargs": "^14.0.0"
-      }
-    },
-    "acorn": {
-      "version": "7.4.1",
-      "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz",
-      "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==",
-      "dev": true
-    },
-    "acorn-jsx": {
-      "version": "5.3.2",
-      "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.3.2.tgz",
-      "integrity": "sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ==",
-      "dev": true
-    },
-    "ajv": {
-      "version": "6.12.6",
-      "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
-      "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
-      "dev": true,
-      "requires": {
-        "fast-deep-equal": "^3.1.1",
-        "fast-json-stable-stringify": "^2.0.0",
-        "json-schema-traverse": "^0.4.1",
-        "uri-js": "^4.2.2"
-      }
-    },
-    "ansi-colors": {
-      "version": "3.2.3",
-      "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.3.tgz",
-      "integrity": "sha512-LEHHyuhlPY3TmuUYMh2oz89lTShfvgbmzaBcxve9t/9Wuy7Dwf4yoAKcND7KFT1HAQfqZ12qtc+DUrBMeKF9nw==",
-      "dev": true
-    },
-    "ansi-escapes": {
-      "version": "4.3.2",
-      "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz",
-      "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==",
-      "dev": true,
-      "requires": {
-        "type-fest": "^0.21.3"
-      },
-      "dependencies": {
-        "type-fest": {
-          "version": "0.21.3",
-          "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz",
-          "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==",
-          "dev": true
-        }
-      }
-    },
-    "ansi-regex": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz",
-      "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==",
-      "dev": true
-    },
-    "ansi-styles": {
-      "version": "3.2.1",
-      "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
-      "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
-      "dev": true,
-      "requires": {
-        "color-convert": "^1.9.0"
-      }
-    },
-    "argparse": {
-      "version": "1.0.10",
-      "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz",
-      "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==",
-      "dev": true,
-      "requires": {
-        "sprintf-js": "~1.0.2"
-      }
-    },
-    "args": {
-      "version": "5.0.3",
-      "resolved": "https://registry.npmjs.org/args/-/args-5.0.3.tgz",
-      "integrity": "sha512-h6k/zfFgusnv3i5TU08KQkVKuCPBtL/PWQbWkHUxvJrZ2nAyeaUupneemcrgn1xmqxPQsPIzwkUhOpoqPDRZuA==",
-      "dev": true,
-      "requires": {
-        "camelcase": "5.0.0",
-        "chalk": "2.4.2",
-        "leven": "2.1.0",
-        "mri": "1.1.4"
-      }
-    },
-    "astral-regex": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz",
-      "integrity": "sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg==",
-      "dev": true
-    },
-    "at-least-node": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
-      "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
-      "dev": true
-    },
-    "atomic-sleep": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/atomic-sleep/-/atomic-sleep-1.0.0.tgz",
-      "integrity": "sha512-kNOjDqAh7px0XWNI+4QbzoiR/nTkHAWNud2uvnJquD1/x5a7EQZMJT0AczqK0Qn67oY/TTQ1LbUKajZpp3I9tQ==",
-      "dev": true
-    },
-    "balanced-match": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
-      "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=",
-      "dev": true
-    },
-    "bluebird": {
-      "version": "3.7.2",
-      "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz",
-      "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==",
-      "dev": true
-    },
-    "brace-expansion": {
-      "version": "1.1.11",
-      "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
-      "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
-      "dev": true,
-      "requires": {
-        "balanced-match": "^1.0.0",
-        "concat-map": "0.0.1"
-      }
-    },
-    "browser-stdout": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz",
-      "integrity": "sha512-qhAVI1+Av2X7qelOfAIYwXONood6XlZE/fXaBSmW/T5SzLAmCgzi+eiWE7fUvbHaeNBQH13UftjpXxsfLkMpgw==",
-      "dev": true
-    },
-    "call-me-maybe": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.2.tgz",
-      "integrity": "sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ==",
-      "dev": true
-    },
-    "callsites": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz",
-      "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==",
-      "dev": true
-    },
-    "camelcase": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.0.0.tgz",
-      "integrity": "sha512-faqwZqnWxbxn+F1d399ygeamQNy3lPp/H9H6rNrqYh4FSVCtcY+3cub1MxA8o9mDd55mM8Aghuu/kuyYA6VTsA==",
-      "dev": true
-    },
-    "chalk": {
-      "version": "2.4.2",
-      "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
-      "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
-      "dev": true,
-      "requires": {
-        "ansi-styles": "^3.2.1",
-        "escape-string-regexp": "^1.0.5",
-        "supports-color": "^5.3.0"
-      }
-    },
-    "chardet": {
-      "version": "0.7.0",
-      "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz",
-      "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==",
-      "dev": true
-    },
-    "cli-cursor": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz",
-      "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==",
-      "dev": true,
-      "requires": {
-        "restore-cursor": "^3.1.0"
-      }
-    },
-    "cli-width": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz",
-      "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==",
-      "dev": true
-    },
-    "cliui": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz",
-      "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==",
-      "dev": true,
-      "requires": {
-        "string-width": "^3.1.0",
-        "strip-ansi": "^5.2.0",
-        "wrap-ansi": "^5.1.0"
-      }
-    },
-    "color-convert": {
-      "version": "1.9.3",
-      "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
-      "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
-      "dev": true,
-      "requires": {
-        "color-name": "1.1.3"
-      }
-    },
-    "color-name": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
-      "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=",
-      "dev": true
-    },
-    "compute-gcd": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/compute-gcd/-/compute-gcd-1.2.1.tgz",
-      "integrity": "sha512-TwMbxBNz0l71+8Sc4czv13h4kEqnchV9igQZBi6QUaz09dnz13juGnnaWWJTRsP3brxOoxeB4SA2WELLw1hCtg==",
-      "dev": true,
-      "requires": {
-        "validate.io-array": "^1.0.3",
-        "validate.io-function": "^1.0.2",
-        "validate.io-integer-array": "^1.0.0"
-      }
-    },
-    "compute-lcm": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/compute-lcm/-/compute-lcm-1.1.2.tgz",
-      "integrity": "sha512-OFNPdQAXnQhDSKioX8/XYT6sdUlXwpeMjfd6ApxMJfyZ4GxmLR1xvMERctlYhlHwIiz6CSpBc2+qYKjHGZw4TQ==",
-      "dev": true,
-      "requires": {
-        "compute-gcd": "^1.2.1",
-        "validate.io-array": "^1.0.3",
-        "validate.io-function": "^1.0.2",
-        "validate.io-integer-array": "^1.0.0"
-      }
-    },
-    "concat-map": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
-      "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=",
-      "dev": true
-    },
-    "cross-spawn": {
-      "version": "6.0.5",
-      "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz",
-      "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==",
-      "dev": true,
-      "requires": {
-        "nice-try": "^1.0.4",
-        "path-key": "^2.0.1",
-        "semver": "^5.5.0",
-        "shebang-command": "^1.2.0",
-        "which": "^1.2.9"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "5.7.2",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.2.tgz",
-          "integrity": "sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g==",
-          "dev": true
-        }
-      }
-    },
-    "dateformat": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/dateformat/-/dateformat-3.0.3.tgz",
-      "integrity": "sha512-jyCETtSl3VMZMWeRo7iY1FL19ges1t55hMo5yaam4Jrsm5EPL89UQkoQRyiI+Yf4k8r2ZpdngkV8hr1lIdjb3Q==",
-      "dev": true
-    },
-    "debug": {
-      "version": "3.2.6",
-      "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.6.tgz",
-      "integrity": "sha512-mel+jf7nrtEl5Pn1Qx46zARXKDpBbvzezse7p7LqINmdoIk8PYP5SySaxEmYv6TZ0JyEKA1hsCId6DIhgITtWQ==",
-      "dev": true,
-      "requires": {
-        "ms": "^2.1.1"
-      }
-    },
-    "decamelize": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
-      "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=",
-      "dev": true
-    },
-    "deep-is": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.4.tgz",
-      "integrity": "sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==",
-      "dev": true
-    },
-    "define-properties": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz",
-      "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==",
-      "dev": true,
-      "requires": {
-        "object-keys": "^1.0.12"
-      }
-    },
-    "diff": {
-      "version": "3.5.0",
-      "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
-      "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
-      "dev": true
-    },
-    "doctrine": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
-      "integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
-      "dev": true,
-      "requires": {
-        "esutils": "^2.0.2"
-      }
-    },
-    "drange": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/drange/-/drange-1.1.1.tgz",
-      "integrity": "sha512-pYxfDYpued//QpnLIm4Avk7rsNtAtQkUES2cwAYSvD/wd2pKD71gN2Ebj3e7klzXwjocvE8c5vx/1fxwpqmSxA==",
-      "dev": true
-    },
-    "emoji-regex": {
-      "version": "7.0.3",
-      "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz",
-      "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==",
-      "dev": true
-    },
-    "end-of-stream": {
-      "version": "1.4.4",
-      "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
-      "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
-      "dev": true,
-      "requires": {
-        "once": "^1.4.0"
-      }
-    },
-    "es-abstract": {
-      "version": "1.17.0-next.1",
-      "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.0-next.1.tgz",
-      "integrity": "sha512-7MmGr03N7Rnuid6+wyhD9sHNE2n4tFSwExnU2lQl3lIo2ShXWGePY80zYaoMOmILWv57H0amMjZGHNzzGG70Rw==",
-      "dev": true,
-      "requires": {
-        "es-to-primitive": "^1.2.1",
-        "function-bind": "^1.1.1",
-        "has": "^1.0.3",
-        "has-symbols": "^1.0.1",
-        "is-callable": "^1.1.4",
-        "is-regex": "^1.0.4",
-        "object-inspect": "^1.7.0",
-        "object-keys": "^1.1.1",
-        "object.assign": "^4.1.0",
-        "string.prototype.trimleft": "^2.1.0",
-        "string.prototype.trimright": "^2.1.0"
-      }
-    },
-    "es-to-primitive": {
-      "version": "1.2.1",
-      "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz",
-      "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==",
-      "dev": true,
-      "requires": {
-        "is-callable": "^1.1.4",
-        "is-date-object": "^1.0.1",
-        "is-symbol": "^1.0.2"
-      }
-    },
-    "escape-string-regexp": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
-      "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=",
-      "dev": true
-    },
-    "eslint": {
-      "version": "6.8.0",
-      "resolved": "https://registry.npmjs.org/eslint/-/eslint-6.8.0.tgz",
-      "integrity": "sha512-K+Iayyo2LtyYhDSYwz5D5QdWw0hCacNzyq1Y821Xna2xSJj7cijoLLYmLxTQgcgZ9mC61nryMy9S7GRbYpI5Ig==",
-      "dev": true,
-      "requires": {
-        "@babel/code-frame": "^7.0.0",
-        "ajv": "^6.10.0",
-        "chalk": "^2.1.0",
-        "cross-spawn": "^6.0.5",
-        "debug": "^4.0.1",
-        "doctrine": "^3.0.0",
-        "eslint-scope": "^5.0.0",
-        "eslint-utils": "^1.4.3",
-        "eslint-visitor-keys": "^1.1.0",
-        "espree": "^6.1.2",
-        "esquery": "^1.0.1",
-        "esutils": "^2.0.2",
-        "file-entry-cache": "^5.0.1",
-        "functional-red-black-tree": "^1.0.1",
-        "glob-parent": "^5.0.0",
-        "globals": "^12.1.0",
-        "ignore": "^4.0.6",
-        "import-fresh": "^3.0.0",
-        "imurmurhash": "^0.1.4",
-        "inquirer": "^7.0.0",
-        "is-glob": "^4.0.0",
-        "js-yaml": "^3.13.1",
-        "json-stable-stringify-without-jsonify": "^1.0.1",
-        "levn": "^0.3.0",
-        "lodash": "^4.17.14",
-        "minimatch": "^3.0.4",
-        "mkdirp": "^0.5.1",
-        "natural-compare": "^1.4.0",
-        "optionator": "^0.8.3",
-        "progress": "^2.0.0",
-        "regexpp": "^2.0.1",
-        "semver": "^6.1.2",
-        "strip-ansi": "^5.2.0",
-        "strip-json-comments": "^3.0.1",
-        "table": "^5.2.3",
-        "text-table": "^0.2.0",
-        "v8-compile-cache": "^2.0.3"
-      },
-      "dependencies": {
-        "debug": {
-          "version": "4.3.4",
-          "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz",
-          "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==",
-          "dev": true,
-          "requires": {
-            "ms": "2.1.2"
-          }
-        },
-        "ms": {
-          "version": "2.1.2",
-          "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
-          "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==",
-          "dev": true
-        }
-      }
-    },
-    "eslint-scope": {
-      "version": "5.1.1",
-      "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz",
-      "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==",
-      "dev": true,
-      "requires": {
-        "esrecurse": "^4.3.0",
-        "estraverse": "^4.1.1"
-      }
-    },
-    "eslint-utils": {
-      "version": "1.4.3",
-      "resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
-      "integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
-      "dev": true,
-      "requires": {
-        "eslint-visitor-keys": "^1.1.0"
-      }
-    },
-    "eslint-visitor-keys": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
-      "integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
-      "dev": true
-    },
-    "espree": {
-      "version": "6.2.1",
-      "resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
-      "integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
-      "dev": true,
-      "requires": {
-        "acorn": "^7.1.1",
-        "acorn-jsx": "^5.2.0",
-        "eslint-visitor-keys": "^1.1.0"
-      }
-    },
-    "esprima": {
-      "version": "4.0.1",
-      "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
-      "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==",
-      "dev": true
-    },
-    "esquery": {
-      "version": "1.5.0",
-      "resolved": "https://registry.npmjs.org/esquery/-/esquery-1.5.0.tgz",
-      "integrity": "sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg==",
-      "dev": true,
-      "requires": {
-        "estraverse": "^5.1.0"
-      },
-      "dependencies": {
-        "estraverse": {
-          "version": "5.3.0",
-          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-          "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-          "dev": true
-        }
-      }
-    },
-    "esrecurse": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz",
-      "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==",
-      "dev": true,
-      "requires": {
-        "estraverse": "^5.2.0"
-      },
-      "dependencies": {
-        "estraverse": {
-          "version": "5.3.0",
-          "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz",
-          "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==",
-          "dev": true
-        }
-      }
-    },
-    "estraverse": {
-      "version": "4.3.0",
-      "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz",
-      "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==",
-      "dev": true
-    },
-    "esutils": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz",
-      "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==",
-      "dev": true
-    },
-    "external-editor": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz",
-      "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==",
-      "dev": true,
-      "requires": {
-        "chardet": "^0.7.0",
-        "iconv-lite": "^0.4.24",
-        "tmp": "^0.0.33"
-      }
-    },
-    "fast-deep-equal": {
-      "version": "3.1.3",
-      "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
-      "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==",
-      "dev": true
-    },
-    "fast-json-stable-stringify": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
-      "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==",
-      "dev": true
-    },
-    "fast-levenshtein": {
-      "version": "2.0.6",
-      "resolved": "https://registry.npmjs.org/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz",
-      "integrity": "sha512-DCXu6Ifhqcks7TZKY3Hxp3y6qphY5SJZmrWMDrKcERSOXWQdMhU9Ig/PYrzyw/ul9jOIyh0N4M0tbC5hodg8dw==",
-      "dev": true
-    },
-    "fast-redact": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/fast-redact/-/fast-redact-2.1.0.tgz",
-      "integrity": "sha512-0LkHpTLyadJavq9sRzzyqIoMZemWli77K2/MGOkafrR64B9ItrvZ9aT+jluvNDsv0YEHjSNhlMBtbokuoqii4A==",
-      "dev": true
-    },
-    "fast-safe-stringify": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.1.1.tgz",
-      "integrity": "sha512-W+KJc2dmILlPplD/H4K9l9LcAHAfPtP6BY84uVLXQ6Evcz9Lcg33Y2z1IVblT6xdY54PXYVHEv+0Wpq8Io6zkA==",
-      "dev": true
-    },
-    "figures": {
-      "version": "3.2.0",
-      "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz",
-      "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==",
-      "dev": true,
-      "requires": {
-        "escape-string-regexp": "^1.0.5"
-      }
-    },
-    "file-entry-cache": {
-      "version": "5.0.1",
-      "resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
-      "integrity": "sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g==",
-      "dev": true,
-      "requires": {
-        "flat-cache": "^2.0.1"
-      }
-    },
-    "find-up": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz",
-      "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==",
-      "dev": true,
-      "requires": {
-        "locate-path": "^3.0.0"
-      }
-    },
-    "flat": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/flat/-/flat-4.1.0.tgz",
-      "integrity": "sha512-Px/TiLIznH7gEDlPXcUD4KnBusa6kR6ayRUVcnEAbreRIuhkqow/mun59BuRXwoYk7ZQOLW1ZM05ilIvK38hFw==",
-      "dev": true,
-      "requires": {
-        "is-buffer": "~2.0.3"
-      }
-    },
-    "flat-cache": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/flat-cache/-/flat-cache-2.0.1.tgz",
-      "integrity": "sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA==",
-      "dev": true,
-      "requires": {
-        "flatted": "^2.0.0",
-        "rimraf": "2.6.3",
-        "write": "1.0.3"
-      }
-    },
-    "flatstr": {
-      "version": "1.0.12",
-      "resolved": "https://registry.npmjs.org/flatstr/-/flatstr-1.0.12.tgz",
-      "integrity": "sha512-4zPxDyhCyiN2wIAtSLI6gc82/EjqZc1onI4Mz/l0pWrAlsSfYH/2ZIcU+e3oA2wDwbzIWNKwa23F8rh6+DRWkw==",
-      "dev": true
-    },
-    "flatted": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz",
-      "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==",
-      "dev": true
-    },
-    "format-util": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/format-util/-/format-util-1.0.5.tgz",
-      "integrity": "sha512-varLbTj0e0yVyRpqQhuWV+8hlePAgaoFRhNFj50BNjEIrw1/DphHSObtqwskVCPWNgzwPoQrZAbfa/SBiicNeg==",
-      "dev": true
-    },
-    "fs-extra": {
-      "version": "9.1.0",
-      "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.1.0.tgz",
-      "integrity": "sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==",
-      "dev": true,
-      "requires": {
-        "at-least-node": "^1.0.0",
-        "graceful-fs": "^4.2.0",
-        "jsonfile": "^6.0.1",
-        "universalify": "^2.0.0"
-      }
-    },
-    "fs.realpath": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
-      "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=",
-      "dev": true
-    },
-    "function-bind": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
-      "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==",
-      "dev": true
-    },
-    "functional-red-black-tree": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz",
-      "integrity": "sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g==",
-      "dev": true
-    },
-    "get-caller-file": {
-      "version": "2.0.5",
-      "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz",
-      "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==",
-      "dev": true
-    },
-    "glob": {
-      "version": "7.1.3",
-      "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.3.tgz",
-      "integrity": "sha512-vcfuiIxogLV4DlGBHIUOwI0IbrJ8HWPc4MU7HzviGeNho/UJDfi6B5p3sHeWIQ0KGIU0Jpxi5ZHxemQfLkkAwQ==",
-      "dev": true,
-      "requires": {
-        "fs.realpath": "^1.0.0",
-        "inflight": "^1.0.4",
-        "inherits": "2",
-        "minimatch": "^3.0.4",
-        "once": "^1.3.0",
-        "path-is-absolute": "^1.0.0"
-      }
-    },
-    "glob-parent": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz",
-      "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==",
-      "dev": true,
-      "requires": {
-        "is-glob": "^4.0.1"
-      }
-    },
-    "globals": {
-      "version": "12.4.0",
-      "resolved": "https://registry.npmjs.org/globals/-/globals-12.4.0.tgz",
-      "integrity": "sha512-BWICuzzDvDoH54NHKCseDanAhE3CeDorgDL5MT6LMXXj2WCnd9UC2szdk4AWLfjdgNBCXLUanXYcpBBKOSWGwg==",
-      "dev": true,
-      "requires": {
-        "type-fest": "^0.8.1"
-      }
-    },
-    "graceful-fs": {
-      "version": "4.2.11",
-      "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz",
-      "integrity": "sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ==",
-      "dev": true
-    },
-    "growl": {
-      "version": "1.10.5",
-      "resolved": "https://registry.npmjs.org/growl/-/growl-1.10.5.tgz",
-      "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==",
-      "dev": true
-    },
-    "has": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz",
-      "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==",
-      "dev": true,
-      "requires": {
-        "function-bind": "^1.1.1"
-      }
-    },
-    "has-flag": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
-      "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=",
-      "dev": true
-    },
-    "has-symbols": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz",
-      "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==",
-      "dev": true
-    },
-    "he": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz",
-      "integrity": "sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw==",
-      "dev": true
-    },
-    "hosted-git-info": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-4.1.0.tgz",
-      "integrity": "sha512-kyCuEOWjJqZuDbRHzL8V93NzQhwIB71oFWSyzVo+KPZI+pnQPPxucdkrOZvkLRnrf5URsQM+IJ09Dw29cRALIA==",
-      "dev": true,
-      "requires": {
-        "lru-cache": "^6.0.0"
-      }
-    },
-    "iconv-lite": {
-      "version": "0.4.24",
-      "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz",
-      "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==",
-      "dev": true,
-      "requires": {
-        "safer-buffer": ">= 2.1.2 < 3"
-      }
-    },
-    "ignore": {
-      "version": "4.0.6",
-      "resolved": "https://registry.npmjs.org/ignore/-/ignore-4.0.6.tgz",
-      "integrity": "sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg==",
-      "dev": true
-    },
-    "import-fresh": {
-      "version": "3.3.0",
-      "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz",
-      "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==",
-      "dev": true,
-      "requires": {
-        "parent-module": "^1.0.0",
-        "resolve-from": "^4.0.0"
-      }
-    },
-    "imurmurhash": {
-      "version": "0.1.4",
-      "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz",
-      "integrity": "sha512-JmXMZ6wuvDmLiHEml9ykzqO6lwFbof0GG4IkcGaENdCRDDmMVnny7s5HsIgHCbaq0w2MyPhDqkhTUgS2LU2PHA==",
-      "dev": true
-    },
-    "inflight": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
-      "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
-      "dev": true,
-      "requires": {
-        "once": "^1.3.0",
-        "wrappy": "1"
-      }
-    },
-    "inherits": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
-      "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==",
-      "dev": true
-    },
-    "inquirer": {
-      "version": "7.3.3",
-      "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.3.3.tgz",
-      "integrity": "sha512-JG3eIAj5V9CwcGvuOmoo6LB9kbAYT8HXffUl6memuszlwDC/qvFAJw49XJ5NROSFNPxp3iQg1GqkFhaY/CR0IA==",
-      "dev": true,
-      "requires": {
-        "ansi-escapes": "^4.2.1",
-        "chalk": "^4.1.0",
-        "cli-cursor": "^3.1.0",
-        "cli-width": "^3.0.0",
-        "external-editor": "^3.0.3",
-        "figures": "^3.0.0",
-        "lodash": "^4.17.19",
-        "mute-stream": "0.0.8",
-        "run-async": "^2.4.0",
-        "rxjs": "^6.6.0",
-        "string-width": "^4.1.0",
-        "strip-ansi": "^6.0.0",
-        "through": "^2.3.6"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "5.0.1",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz",
-          "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==",
-          "dev": true
-        },
-        "ansi-styles": {
-          "version": "4.3.0",
-          "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz",
-          "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==",
-          "dev": true,
-          "requires": {
-            "color-convert": "^2.0.1"
-          }
-        },
-        "chalk": {
-          "version": "4.1.2",
-          "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz",
-          "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==",
-          "dev": true,
-          "requires": {
-            "ansi-styles": "^4.1.0",
-            "supports-color": "^7.1.0"
-          }
-        },
-        "color-convert": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz",
-          "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==",
-          "dev": true,
-          "requires": {
-            "color-name": "~1.1.4"
-          }
-        },
-        "color-name": {
-          "version": "1.1.4",
-          "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz",
-          "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==",
-          "dev": true
-        },
-        "emoji-regex": {
-          "version": "8.0.0",
-          "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz",
-          "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==",
-          "dev": true
-        },
-        "has-flag": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz",
-          "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==",
-          "dev": true
-        },
-        "is-fullwidth-code-point": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz",
-          "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==",
-          "dev": true
-        },
-        "lodash": {
-          "version": "4.17.21",
-          "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
-          "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
-          "dev": true
-        },
-        "string-width": {
-          "version": "4.2.3",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz",
-          "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==",
-          "dev": true,
-          "requires": {
-            "emoji-regex": "^8.0.0",
-            "is-fullwidth-code-point": "^3.0.0",
-            "strip-ansi": "^6.0.1"
-          }
-        },
-        "strip-ansi": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz",
-          "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^5.0.1"
-          }
-        },
-        "supports-color": {
-          "version": "7.2.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz",
-          "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^4.0.0"
-          }
-        }
-      }
-    },
-    "is-buffer": {
-      "version": "2.0.4",
-      "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-2.0.4.tgz",
-      "integrity": "sha512-Kq1rokWXOPXWuaMAqZiJW4XxsmD9zGx9q4aePabbn3qCRGedtH7Cm+zV8WETitMfu1wdh+Rvd6w5egwSngUX2A==",
-      "dev": true
-    },
-    "is-callable": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.1.4.tgz",
-      "integrity": "sha512-r5p9sxJjYnArLjObpjA4xu5EKI3CuKHkJXMhT7kwbpUyIFD1n5PMAsoPvWnvtZiNz7LjkYDRZhd7FlI0eMijEA==",
-      "dev": true
-    },
-    "is-date-object": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz",
-      "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=",
-      "dev": true
-    },
-    "is-extglob": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
-      "integrity": "sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ==",
-      "dev": true
-    },
-    "is-fullwidth-code-point": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz",
-      "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=",
-      "dev": true
-    },
-    "is-glob": {
-      "version": "4.0.3",
-      "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz",
-      "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==",
-      "dev": true,
-      "requires": {
-        "is-extglob": "^2.1.1"
-      }
-    },
-    "is-regex": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.0.5.tgz",
-      "integrity": "sha512-vlKW17SNq44owv5AQR3Cq0bQPEb8+kF3UKZ2fiZNOWtztYE5i0CzCZxFDwO58qAOWtxdBRVO/V5Qin1wjCqFYQ==",
-      "dev": true,
-      "requires": {
-        "has": "^1.0.3"
-      }
-    },
-    "is-symbol": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz",
-      "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==",
-      "dev": true,
-      "requires": {
-        "has-symbols": "^1.0.1"
-      }
-    },
-    "isexe": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
-      "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=",
-      "dev": true
-    },
-    "jmespath": {
-      "version": "0.15.0",
-      "resolved": "https://registry.npmjs.org/jmespath/-/jmespath-0.15.0.tgz",
-      "integrity": "sha512-+kHj8HXArPfpPEKGLZ+kB5ONRTCiGQXo8RQYL0hH8t6pWXUBBK5KkkQmTNOwKK4LEsd0yTsgtjJVm4UBSZea4w==",
-      "dev": true
-    },
-    "joycon": {
-      "version": "2.2.5",
-      "resolved": "https://registry.npmjs.org/joycon/-/joycon-2.2.5.tgz",
-      "integrity": "sha512-YqvUxoOcVPnCp0VU1/56f+iKSdvIRJYPznH22BdXV3xMk75SFXhWeJkZ8C9XxUWt1b5x2X1SxuFygW1U0FmkEQ==",
-      "dev": true
-    },
-    "js-tokens": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
-      "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==",
-      "dev": true
-    },
-    "js-yaml": {
-      "version": "3.13.1",
-      "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz",
-      "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==",
-      "dev": true,
-      "requires": {
-        "argparse": "^1.0.7",
-        "esprima": "^4.0.0"
-      }
-    },
-    "json-schema-compare": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/json-schema-compare/-/json-schema-compare-0.2.2.tgz",
-      "integrity": "sha512-c4WYmDKyJXhs7WWvAWm3uIYnfyWFoIp+JEoX34rctVvEkMYCPGhXtvmFFXiffBbxfZsvQ0RNnV5H7GvDF5HCqQ==",
-      "dev": true,
-      "requires": {
-        "lodash": "^4.17.4"
-      }
-    },
-    "json-schema-faker": {
-      "version": "0.5.0-rcv.34",
-      "resolved": "https://registry.npmjs.org/json-schema-faker/-/json-schema-faker-0.5.0-rcv.34.tgz",
-      "integrity": "sha512-Q68XN31eg8rtDNZQpW7f3BrOJxdpBFdPRTmvbn3rex0fI7hrQJGyoqEKb2lb5UiUS+sblOwgKq4aPtdzwHph9Q==",
-      "dev": true,
-      "requires": {
-        "json-schema-ref-parser": "^6.1.0",
-        "jsonpath-plus": "^3.0.0",
-        "randexp": "^0.5.3"
-      },
-      "dependencies": {
-        "json-schema-ref-parser": {
-          "version": "6.1.0",
-          "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-6.1.0.tgz",
-          "integrity": "sha512-pXe9H1m6IgIpXmE5JSb8epilNTGsmTb2iPohAXpOdhqGFbQjNeHHsZxU+C8w6T81GZxSPFLeUoqDJmzxx5IGuw==",
-          "dev": true,
-          "requires": {
-            "call-me-maybe": "^1.0.1",
-            "js-yaml": "^3.12.1",
-            "ono": "^4.0.11"
-          }
-        }
-      }
-    },
-    "json-schema-merge-allof": {
-      "version": "0.6.0",
-      "resolved": "https://registry.npmjs.org/json-schema-merge-allof/-/json-schema-merge-allof-0.6.0.tgz",
-      "integrity": "sha512-LEw4VMQVRceOPLuGRWcxW5orTTiR9ZAtqTAe4rQUjNADTeR81bezBVFa0MqIwp0YmHIM1KkhSjZM7o+IQhaPbQ==",
-      "dev": true,
-      "requires": {
-        "compute-lcm": "^1.1.0",
-        "json-schema-compare": "^0.2.2",
-        "lodash": "^4.17.4"
-      }
-    },
-    "json-schema-ref-parser": {
-      "version": "7.1.4",
-      "resolved": "https://registry.npmjs.org/json-schema-ref-parser/-/json-schema-ref-parser-7.1.4.tgz",
-      "integrity": "sha512-AD7bvav0vak1/63w3jH8F7eHId/4E4EPdMAEZhGxtjktteUv9dnNB/cJy6nVnMyoTPBJnLwFK6tiQPSTeleCtQ==",
-      "dev": true,
-      "requires": {
-        "call-me-maybe": "^1.0.1",
-        "js-yaml": "^3.13.1",
-        "ono": "^6.0.0"
-      },
-      "dependencies": {
-        "ono": {
-          "version": "6.0.1",
-          "resolved": "https://registry.npmjs.org/ono/-/ono-6.0.1.tgz",
-          "integrity": "sha512-5rdYW/106kHqLeG22GE2MHKq+FlsxMERZev9DCzQX1zwkxnFwBivSn5i17a5O/rDmOJOdf4Wyt80UZljzx9+DA==",
-          "dev": true
-        }
-      }
-    },
-    "json-schema-traverse": {
-      "version": "0.4.1",
-      "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
-      "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
-      "dev": true
-    },
-    "json-stable-stringify": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.2.tgz",
-      "integrity": "sha512-eunSSaEnxV12z+Z73y/j5N37/In40GK4GmsSy+tEHJMxknvqnA7/djeYtAgW0GsWHUfg+847WJjKaEylk2y09g==",
-      "dev": true,
-      "requires": {
-        "jsonify": "^0.0.1"
-      }
-    },
-    "json-stable-stringify-without-jsonify": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
-      "integrity": "sha512-Bdboy+l7tA3OGW6FjyFHWkP5LuByj1Tk33Ljyq0axyzdk9//JSi2u3fP1QSmd1KNwq6VOKYGlAu87CisVir6Pw==",
-      "dev": true
-    },
-    "jsonfile": {
-      "version": "6.1.0",
-      "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz",
-      "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==",
-      "dev": true,
-      "requires": {
-        "graceful-fs": "^4.1.6",
-        "universalify": "^2.0.0"
-      }
-    },
-    "jsonify": {
-      "version": "0.0.1",
-      "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.1.tgz",
-      "integrity": "sha512-2/Ki0GcmuqSrgFyelQq9M05y7PS0mEwuIzrf3f1fPqkVDVRvZrPZtVSMHxdgo8Aq0sxAOb/cr2aqqA3LeWHVPg==",
-      "dev": true
-    },
-    "jsonpath-plus": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/jsonpath-plus/-/jsonpath-plus-3.0.0.tgz",
-      "integrity": "sha512-WQwgWEBgn+SJU1tlDa/GiY5/ngRpa9yrSj8n4BYPHcwoxTDaMEaYCHMOn42hIHHDd3CrUoRr3+HpsK0hCKoxzA==",
-      "dev": true
-    },
-    "leven": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz",
-      "integrity": "sha512-nvVPLpIHUxCUoRLrFqTgSxXJ614d8AgQoWl7zPe/2VadE8+1dpU3LBhowRuBAcuwruWtOdD8oYC9jDNJjXDPyA==",
-      "dev": true
-    },
-    "levn": {
-      "version": "0.3.0",
-      "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz",
-      "integrity": "sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA==",
-      "dev": true,
-      "requires": {
-        "prelude-ls": "~1.1.2",
-        "type-check": "~0.3.2"
-      }
-    },
-    "locate-path": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz",
-      "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==",
-      "dev": true,
-      "requires": {
-        "p-locate": "^3.0.0",
-        "path-exists": "^3.0.0"
-      }
-    },
-    "lodash": {
-      "version": "4.17.15",
-      "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
-      "integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
-      "dev": true
-    },
-    "log-symbols": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz",
-      "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==",
-      "dev": true,
-      "requires": {
-        "chalk": "^2.0.1"
-      }
-    },
-    "lru-cache": {
-      "version": "6.0.0",
-      "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz",
-      "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==",
-      "dev": true,
-      "requires": {
-        "yallist": "^4.0.0"
-      }
-    },
-    "mimic-fn": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz",
-      "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==",
-      "dev": true
-    },
-    "minimatch": {
-      "version": "3.0.4",
-      "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
-      "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
-      "dev": true,
-      "requires": {
-        "brace-expansion": "^1.1.7"
-      }
-    },
-    "minimist": {
-      "version": "0.0.8",
-      "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz",
-      "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=",
-      "dev": true
-    },
-    "mkdirp": {
-      "version": "0.5.1",
-      "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz",
-      "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=",
-      "dev": true,
-      "requires": {
-        "minimist": "0.0.8"
-      }
-    },
-    "mocha": {
-      "version": "6.2.2",
-      "resolved": "https://registry.npmjs.org/mocha/-/mocha-6.2.2.tgz",
-      "integrity": "sha512-FgDS9Re79yU1xz5d+C4rv1G7QagNGHZ+iXF81hO8zY35YZZcLEsJVfFolfsqKFWunATEvNzMK0r/CwWd/szO9A==",
-      "dev": true,
-      "requires": {
-        "ansi-colors": "3.2.3",
-        "browser-stdout": "1.3.1",
-        "debug": "3.2.6",
-        "diff": "3.5.0",
-        "escape-string-regexp": "1.0.5",
-        "find-up": "3.0.0",
-        "glob": "7.1.3",
-        "growl": "1.10.5",
-        "he": "1.2.0",
-        "js-yaml": "3.13.1",
-        "log-symbols": "2.2.0",
-        "minimatch": "3.0.4",
-        "mkdirp": "0.5.1",
-        "ms": "2.1.1",
-        "node-environment-flags": "1.0.5",
-        "object.assign": "4.1.0",
-        "strip-json-comments": "2.0.1",
-        "supports-color": "6.0.0",
-        "which": "1.3.1",
-        "wide-align": "1.1.3",
-        "yargs": "13.3.0",
-        "yargs-parser": "13.1.1",
-        "yargs-unparser": "1.6.0"
-      },
-      "dependencies": {
-        "strip-json-comments": {
-          "version": "2.0.1",
-          "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
-          "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=",
-          "dev": true
-        },
-        "supports-color": {
-          "version": "6.0.0",
-          "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.0.0.tgz",
-          "integrity": "sha512-on9Kwidc1IUQo+bQdhi8+Tijpo0e1SS6RoGo2guUwn5vdaxw8RXOF9Vb2ws+ihWOmh4JnCJOvaziZWP1VABaLg==",
-          "dev": true,
-          "requires": {
-            "has-flag": "^3.0.0"
-          }
-        },
-        "yargs": {
-          "version": "13.3.0",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
-          "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
-          "dev": true,
-          "requires": {
-            "cliui": "^5.0.0",
-            "find-up": "^3.0.0",
-            "get-caller-file": "^2.0.1",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^2.0.0",
-            "set-blocking": "^2.0.0",
-            "string-width": "^3.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^4.0.0",
-            "yargs-parser": "^13.1.1"
-          }
-        },
-        "yargs-parser": {
-          "version": "13.1.1",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
-          "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
-          "dev": true,
-          "requires": {
-            "camelcase": "^5.0.0",
-            "decamelize": "^1.2.0"
-          }
-        }
-      }
-    },
-    "mri": {
-      "version": "1.1.4",
-      "resolved": "https://registry.npmjs.org/mri/-/mri-1.1.4.tgz",
-      "integrity": "sha512-6y7IjGPm8AzlvoUrwAaw1tLnUBudaS3752vcd8JtrpGGQn+rXIe63LFVHm/YMwtqAuh+LJPCFdlLYPWM1nYn6w==",
-      "dev": true
-    },
-    "ms": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
-      "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
-      "dev": true
-    },
-    "mute-stream": {
-      "version": "0.0.8",
-      "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz",
-      "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==",
-      "dev": true
-    },
-    "natural-compare": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz",
-      "integrity": "sha512-OWND8ei3VtNC9h7V60qff3SVobHr996CTwgxubgyQYEpg290h9J0buyECNNJexkFm5sOajh5G116RYA1c8ZMSw==",
-      "dev": true
-    },
-    "netmask": {
-      "version": "2.0.2",
-      "resolved": "https://registry.npmjs.org/netmask/-/netmask-2.0.2.tgz",
-      "integrity": "sha512-dBpDMdxv9Irdq66304OLfEmQ9tbNRFnFTuZiLo+bD+r332bBmMJ8GBLXklIXXgxd3+v9+KUnZaUR5PJMa75Gsg==",
-      "dev": true
-    },
-    "nice-try": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz",
-      "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==",
-      "dev": true
-    },
-    "node-environment-flags": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/node-environment-flags/-/node-environment-flags-1.0.5.tgz",
-      "integrity": "sha512-VNYPRfGfmZLx0Ye20jWzHUjyTW/c+6Wq+iLhDzUI4XmhrDd9l/FozXV3F2xOaXjvp0co0+v1YSR3CMP6g+VvLQ==",
-      "dev": true,
-      "requires": {
-        "object.getownpropertydescriptors": "^2.0.3",
-        "semver": "^5.7.0"
-      },
-      "dependencies": {
-        "semver": {
-          "version": "5.7.1",
-          "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
-          "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==",
-          "dev": true
-        }
-      }
-    },
-    "object-inspect": {
-      "version": "1.7.0",
-      "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.7.0.tgz",
-      "integrity": "sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==",
-      "dev": true
-    },
-    "object-keys": {
-      "version": "1.1.1",
-      "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz",
-      "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==",
-      "dev": true
-    },
-    "object.assign": {
-      "version": "4.1.0",
-      "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.0.tgz",
-      "integrity": "sha512-exHJeq6kBKj58mqGyTQ9DFvrZC/eR6OwxzoM9YRoGBqrXYonaFyGiFMuc9VZrXf7DarreEwMpurG3dd+CNyW5w==",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.2",
-        "function-bind": "^1.1.1",
-        "has-symbols": "^1.0.0",
-        "object-keys": "^1.0.11"
-      }
-    },
-    "object.getownpropertydescriptors": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.0.tgz",
-      "integrity": "sha512-Z53Oah9A3TdLoblT7VKJaTDdXdT+lQO+cNpKVnya5JDe9uLvzu1YyY1yFDFrcxrlRgWrEFH0jJtD/IbuwjcEVg==",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.3",
-        "es-abstract": "^1.17.0-next.1"
-      }
-    },
-    "once": {
-      "version": "1.4.0",
-      "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
-      "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
-      "dev": true,
-      "requires": {
-        "wrappy": "1"
-      }
-    },
-    "onetime": {
-      "version": "5.1.2",
-      "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz",
-      "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==",
-      "dev": true,
-      "requires": {
-        "mimic-fn": "^2.1.0"
-      }
-    },
-    "ono": {
-      "version": "4.0.11",
-      "resolved": "https://registry.npmjs.org/ono/-/ono-4.0.11.tgz",
-      "integrity": "sha512-jQ31cORBFE6td25deYeD80wxKBMj+zBmHTrVxnc6CKhx8gho6ipmWM5zj/oeoqioZ99yqBls9Z/9Nss7J26G2g==",
-      "dev": true,
-      "requires": {
-        "format-util": "^1.0.3"
-      }
-    },
-    "optionator": {
-      "version": "0.8.3",
-      "resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
-      "integrity": "sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA==",
-      "dev": true,
-      "requires": {
-        "deep-is": "~0.1.3",
-        "fast-levenshtein": "~2.0.6",
-        "levn": "~0.3.0",
-        "prelude-ls": "~1.1.2",
-        "type-check": "~0.3.2",
-        "word-wrap": "~1.2.3"
-      }
-    },
-    "os-tmpdir": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
-      "integrity": "sha512-D2FR03Vir7FIu45XBY20mTb+/ZSWB00sjU9jdQXt83gDrI4Ztz5Fs7/yy74g2N5SVQY4xY1qDr4rNddwYRVX0g==",
-      "dev": true
-    },
-    "p-limit": {
-      "version": "2.2.1",
-      "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.2.1.tgz",
-      "integrity": "sha512-85Tk+90UCVWvbDavCLKPOLC9vvY8OwEX/RtKF+/1OADJMVlFfEHOiMTPVyxg7mk/dKa+ipdHm0OUkTvCpMTuwg==",
-      "dev": true,
-      "requires": {
-        "p-try": "^2.0.0"
-      }
-    },
-    "p-locate": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz",
-      "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==",
-      "dev": true,
-      "requires": {
-        "p-limit": "^2.0.0"
-      }
-    },
-    "p-try": {
-      "version": "2.2.0",
-      "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz",
-      "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==",
-      "dev": true
-    },
-    "parent-module": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz",
-      "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==",
-      "dev": true,
-      "requires": {
-        "callsites": "^3.0.0"
-      }
-    },
-    "path-exists": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz",
-      "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=",
-      "dev": true
-    },
-    "path-is-absolute": {
-      "version": "1.0.1",
-      "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
-      "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=",
-      "dev": true
-    },
-    "path-key": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz",
-      "integrity": "sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw==",
-      "dev": true
-    },
-    "pino": {
-      "version": "5.17.0",
-      "resolved": "https://registry.npmjs.org/pino/-/pino-5.17.0.tgz",
-      "integrity": "sha512-LqrqmRcJz8etUjyV0ddqB6OTUutCgQULPFg2b4dtijRHUsucaAdBgSUW58vY6RFSX+NT8963F+q0tM6lNwGShA==",
-      "dev": true,
-      "requires": {
-        "fast-redact": "^2.0.0",
-        "fast-safe-stringify": "^2.0.7",
-        "flatstr": "^1.0.12",
-        "pino-std-serializers": "^2.4.2",
-        "quick-format-unescaped": "^3.0.3",
-        "sonic-boom": "^0.7.5"
-      }
-    },
-    "pino-pretty": {
-      "version": "3.6.1",
-      "resolved": "https://registry.npmjs.org/pino-pretty/-/pino-pretty-3.6.1.tgz",
-      "integrity": "sha512-S3bal+Yd313OEaPijbf7V+jPxVaTaRO5RQX8S/Mwdtb/8+JOgo1KolDeJTfMDTU2/k6+MHvEbxv+T1ZRfGlnjA==",
-      "dev": true,
-      "requires": {
-        "@hapi/bourne": "^1.3.2",
-        "args": "^5.0.1",
-        "chalk": "^2.4.2",
-        "dateformat": "^3.0.3",
-        "fast-safe-stringify": "^2.0.7",
-        "jmespath": "^0.15.0",
-        "joycon": "^2.2.5",
-        "pump": "^3.0.0",
-        "readable-stream": "^3.4.0",
-        "split2": "^3.1.1",
-        "strip-json-comments": "^3.0.1"
-      }
-    },
-    "pino-std-serializers": {
-      "version": "2.5.0",
-      "resolved": "https://registry.npmjs.org/pino-std-serializers/-/pino-std-serializers-2.5.0.tgz",
-      "integrity": "sha512-wXqbqSrIhE58TdrxxlfLwU9eDhrzppQDvGhBEr1gYbzzM4KKo3Y63gSjiDXRKLVS2UOXdPNR2v+KnQgNrs+xUg==",
-      "dev": true
-    },
-    "prelude-ls": {
-      "version": "1.1.2",
-      "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz",
-      "integrity": "sha512-ESF23V4SKG6lVSGZgYNpbsiaAkdab6ZgOxe52p7+Kid3W3u3bxR4Vfd/o21dmN7jSt0IwgZ4v5MUd26FEtXE9w==",
-      "dev": true
-    },
-    "progress": {
-      "version": "2.0.3",
-      "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
-      "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==",
-      "dev": true
-    },
-    "pump": {
-      "version": "3.0.0",
-      "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
-      "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
-      "dev": true,
-      "requires": {
-        "end-of-stream": "^1.1.0",
-        "once": "^1.3.1"
-      }
-    },
-    "punycode": {
-      "version": "2.3.0",
-      "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.3.0.tgz",
-      "integrity": "sha512-rRV+zQD8tVFys26lAGR9WUuS4iUAngJScM+ZRSKtvl5tKeZ2t5bvdNFdNHBW9FWR4guGHlgmsZ1G7BSm2wTbuA==",
-      "dev": true
-    },
-    "quick-format-unescaped": {
-      "version": "3.0.3",
-      "resolved": "https://registry.npmjs.org/quick-format-unescaped/-/quick-format-unescaped-3.0.3.tgz",
-      "integrity": "sha512-dy1yjycmn9blucmJLXOfZDx1ikZJUi6E8bBZLnhPG5gBrVhHXx2xVyqqgKBubVNEXmx51dBACMHpoMQK/N/AXQ==",
-      "dev": true
-    },
-    "randexp": {
-      "version": "0.5.3",
-      "resolved": "https://registry.npmjs.org/randexp/-/randexp-0.5.3.tgz",
-      "integrity": "sha512-U+5l2KrcMNOUPYvazA3h5ekF80FHTUG+87SEAmHZmolh1M+i/WyTCxVzmi+tidIa1tM4BSe8g2Y/D3loWDjj+w==",
-      "dev": true,
-      "requires": {
-        "drange": "^1.0.2",
-        "ret": "^0.2.0"
-      }
-    },
-    "readable-stream": {
-      "version": "3.6.2",
-      "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.2.tgz",
-      "integrity": "sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==",
-      "dev": true,
-      "requires": {
-        "inherits": "^2.0.3",
-        "string_decoder": "^1.1.1",
-        "util-deprecate": "^1.0.1"
-      }
-    },
-    "recursive-readdir-sync": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/recursive-readdir-sync/-/recursive-readdir-sync-1.0.6.tgz",
-      "integrity": "sha512-QhkBh/V7T3L2m8FrwZEZ/VnSZU35bv7DSy/VlKVfcq10zvwwuxeuDLH7DZYFGHFyXefHchZmsHFLELR7poGjog==",
-      "dev": true
-    },
-    "regexpp": {
-      "version": "2.0.1",
-      "resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
-      "integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
-      "dev": true
-    },
-    "require-directory": {
-      "version": "2.1.1",
-      "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz",
-      "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=",
-      "dev": true
-    },
-    "require-main-filename": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz",
-      "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==",
-      "dev": true
-    },
-    "resolve-from": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz",
-      "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==",
-      "dev": true
-    },
-    "restore-cursor": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz",
-      "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==",
-      "dev": true,
-      "requires": {
-        "onetime": "^5.1.0",
-        "signal-exit": "^3.0.2"
-      }
-    },
-    "ret": {
-      "version": "0.2.2",
-      "resolved": "https://registry.npmjs.org/ret/-/ret-0.2.2.tgz",
-      "integrity": "sha512-M0b3YWQs7R3Z917WRQy1HHA7Ba7D8hvZg6UE5mLykJxQVE2ju0IXbGlaHPPlkY+WN7wFP+wUMXmBFA0aV6vYGQ==",
-      "dev": true
-    },
-    "rewire": {
-      "version": "5.0.0",
-      "resolved": "https://registry.npmjs.org/rewire/-/rewire-5.0.0.tgz",
-      "integrity": "sha512-1zfitNyp9RH5UDyGGLe9/1N0bMlPQ0WrX0Tmg11kMHBpqwPJI4gfPpP7YngFyLbFmhXh19SToAG0sKKEFcOIJA==",
-      "dev": true,
-      "requires": {
-        "eslint": "^6.8.0"
-      }
-    },
-    "rimraf": {
-      "version": "2.6.3",
-      "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz",
-      "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==",
-      "dev": true,
-      "requires": {
-        "glob": "^7.1.3"
-      }
-    },
-    "run-async": {
-      "version": "2.4.1",
-      "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz",
-      "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==",
-      "dev": true
-    },
-    "rxjs": {
-      "version": "6.6.7",
-      "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz",
-      "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==",
-      "dev": true,
-      "requires": {
-        "tslib": "^1.9.0"
-      }
-    },
-    "safe-buffer": {
-      "version": "5.2.1",
-      "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
-      "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==",
-      "dev": true
-    },
-    "safer-buffer": {
-      "version": "2.1.2",
-      "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
-      "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==",
-      "dev": true
-    },
-    "semver": {
-      "version": "6.3.1",
-      "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.1.tgz",
-      "integrity": "sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA==",
-      "dev": true
-    },
-    "set-blocking": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
-      "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=",
-      "dev": true
-    },
-    "shebang-command": {
-      "version": "1.2.0",
-      "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz",
-      "integrity": "sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg==",
-      "dev": true,
-      "requires": {
-        "shebang-regex": "^1.0.0"
-      }
-    },
-    "shebang-regex": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz",
-      "integrity": "sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ==",
-      "dev": true
-    },
-    "signal-exit": {
-      "version": "3.0.7",
-      "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz",
-      "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==",
-      "dev": true
-    },
-    "slice-ansi": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/slice-ansi/-/slice-ansi-2.1.0.tgz",
-      "integrity": "sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ==",
-      "dev": true,
-      "requires": {
-        "ansi-styles": "^3.2.0",
-        "astral-regex": "^1.0.0",
-        "is-fullwidth-code-point": "^2.0.0"
-      }
-    },
-    "sonic-boom": {
-      "version": "0.7.7",
-      "resolved": "https://registry.npmjs.org/sonic-boom/-/sonic-boom-0.7.7.tgz",
-      "integrity": "sha512-Ei5YOo5J64GKClHIL/5evJPgASXFVpfVYbJV9PILZQytTK6/LCwHvsZJW2Ig4p9FMC2OrBrMnXKgRN/OEoAWfg==",
-      "dev": true,
-      "requires": {
-        "atomic-sleep": "^1.0.0",
-        "flatstr": "^1.0.12"
-      }
-    },
-    "split2": {
-      "version": "3.2.2",
-      "resolved": "https://registry.npmjs.org/split2/-/split2-3.2.2.tgz",
-      "integrity": "sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==",
-      "dev": true,
-      "requires": {
-        "readable-stream": "^3.0.0"
-      }
-    },
-    "sprintf-js": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz",
-      "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=",
-      "dev": true
-    },
-    "string-width": {
-      "version": "3.1.0",
-      "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz",
-      "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==",
-      "dev": true,
-      "requires": {
-        "emoji-regex": "^7.0.1",
-        "is-fullwidth-code-point": "^2.0.0",
-        "strip-ansi": "^5.1.0"
-      }
-    },
-    "string.prototype.trimleft": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz",
-      "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.3",
-        "function-bind": "^1.1.1"
-      }
-    },
-    "string.prototype.trimright": {
-      "version": "2.1.0",
-      "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz",
-      "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==",
-      "dev": true,
-      "requires": {
-        "define-properties": "^1.1.3",
-        "function-bind": "^1.1.1"
-      }
-    },
-    "string_decoder": {
-      "version": "1.3.0",
-      "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
-      "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
-      "dev": true,
-      "requires": {
-        "safe-buffer": "~5.2.0"
-      }
-    },
-    "strip-ansi": {
-      "version": "5.2.0",
-      "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz",
-      "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==",
-      "dev": true,
-      "requires": {
-        "ansi-regex": "^4.1.0"
-      }
-    },
-    "strip-json-comments": {
-      "version": "3.1.1",
-      "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-3.1.1.tgz",
-      "integrity": "sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig==",
-      "dev": true
-    },
-    "supports-color": {
-      "version": "5.5.0",
-      "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
-      "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
-      "dev": true,
-      "requires": {
-        "has-flag": "^3.0.0"
-      }
-    },
-    "table": {
-      "version": "5.4.6",
-      "resolved": "https://registry.npmjs.org/table/-/table-5.4.6.tgz",
-      "integrity": "sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug==",
-      "dev": true,
-      "requires": {
-        "ajv": "^6.10.2",
-        "lodash": "^4.17.14",
-        "slice-ansi": "^2.1.0",
-        "string-width": "^3.0.0"
-      }
-    },
-    "text-table": {
-      "version": "0.2.0",
-      "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz",
-      "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==",
-      "dev": true
-    },
-    "through": {
-      "version": "2.3.8",
-      "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz",
-      "integrity": "sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg==",
-      "dev": true
-    },
-    "tmp": {
-      "version": "0.0.33",
-      "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz",
-      "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==",
-      "dev": true,
-      "requires": {
-        "os-tmpdir": "~1.0.2"
-      }
-    },
-    "tslib": {
-      "version": "1.14.1",
-      "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz",
-      "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==",
-      "dev": true
-    },
-    "type-check": {
-      "version": "0.3.2",
-      "resolved": "https://registry.npmjs.org/type-check/-/type-check-0.3.2.tgz",
-      "integrity": "sha512-ZCmOJdvOWDBYJlzAoFkC+Q0+bUyEOS1ltgp1MGU03fqHG+dbi9tBFU2Rd9QKiDZFAYrhPh2JUf7rZRIuHRKtOg==",
-      "dev": true,
-      "requires": {
-        "prelude-ls": "~1.1.2"
-      }
-    },
-    "type-fest": {
-      "version": "0.8.1",
-      "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz",
-      "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==",
-      "dev": true
-    },
-    "universalify": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz",
-      "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==",
-      "dev": true
-    },
-    "uri-js": {
-      "version": "4.4.1",
-      "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz",
-      "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==",
-      "dev": true,
-      "requires": {
-        "punycode": "^2.1.0"
-      }
-    },
-    "util-deprecate": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
-      "integrity": "sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw==",
-      "dev": true
-    },
-    "v8-compile-cache": {
-      "version": "2.4.0",
-      "resolved": "https://registry.npmjs.org/v8-compile-cache/-/v8-compile-cache-2.4.0.tgz",
-      "integrity": "sha512-ocyWc3bAHBB/guyqJQVI5o4BZkPhznPYUG2ea80Gond/BgNWpap8TOmLSeeQG7bnh2KMISxskdADG59j7zruhw==",
-      "dev": true
-    },
-    "validate.io-array": {
-      "version": "1.0.6",
-      "resolved": "https://registry.npmjs.org/validate.io-array/-/validate.io-array-1.0.6.tgz",
-      "integrity": "sha512-DeOy7CnPEziggrOO5CZhVKJw6S3Yi7e9e65R1Nl/RTN1vTQKnzjfvks0/8kQ40FP/dsjRAOd4hxmJ7uLa6vxkg==",
-      "dev": true
-    },
-    "validate.io-function": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/validate.io-function/-/validate.io-function-1.0.2.tgz",
-      "integrity": "sha512-LlFybRJEriSuBnUhQyG5bwglhh50EpTL2ul23MPIuR1odjO7XaMLFV8vHGwp7AZciFxtYOeiSCT5st+XSPONiQ==",
-      "dev": true
-    },
-    "validate.io-integer": {
-      "version": "1.0.5",
-      "resolved": "https://registry.npmjs.org/validate.io-integer/-/validate.io-integer-1.0.5.tgz",
-      "integrity": "sha512-22izsYSLojN/P6bppBqhgUDjCkr5RY2jd+N2a3DCAUey8ydvrZ/OkGvFPR7qfOpwR2LC5p4Ngzxz36g5Vgr/hQ==",
-      "dev": true,
-      "requires": {
-        "validate.io-number": "^1.0.3"
-      }
-    },
-    "validate.io-integer-array": {
-      "version": "1.0.0",
-      "resolved": "https://registry.npmjs.org/validate.io-integer-array/-/validate.io-integer-array-1.0.0.tgz",
-      "integrity": "sha512-mTrMk/1ytQHtCY0oNO3dztafHYyGU88KL+jRxWuzfOmQb+4qqnWmI+gykvGp8usKZOM0H7keJHEbRaFiYA0VrA==",
-      "dev": true,
-      "requires": {
-        "validate.io-array": "^1.0.3",
-        "validate.io-integer": "^1.0.4"
-      }
-    },
-    "validate.io-number": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/validate.io-number/-/validate.io-number-1.0.3.tgz",
-      "integrity": "sha512-kRAyotcbNaSYoDnXvb4MHg/0a1egJdLwS6oJ38TJY7aw9n93Fl/3blIXdyYvPOp55CNxywooG/3BcrwNrBpcSg==",
-      "dev": true
-    },
-    "which": {
-      "version": "1.3.1",
-      "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
-      "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
-      "dev": true,
-      "requires": {
-        "isexe": "^2.0.0"
-      }
-    },
-    "which-module": {
-      "version": "2.0.0",
-      "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz",
-      "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=",
-      "dev": true
-    },
-    "wide-align": {
-      "version": "1.1.3",
-      "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
-      "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
-      "dev": true,
-      "requires": {
-        "string-width": "^1.0.2 || 2"
-      },
-      "dependencies": {
-        "ansi-regex": {
-          "version": "3.0.0",
-          "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz",
-          "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=",
-          "dev": true
-        },
-        "string-width": {
-          "version": "2.1.1",
-          "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz",
-          "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==",
-          "dev": true,
-          "requires": {
-            "is-fullwidth-code-point": "^2.0.0",
-            "strip-ansi": "^4.0.0"
-          }
-        },
-        "strip-ansi": {
-          "version": "4.0.0",
-          "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
-          "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
-          "dev": true,
-          "requires": {
-            "ansi-regex": "^3.0.0"
-          }
-        }
-      }
-    },
-    "word-wrap": {
-      "version": "1.2.5",
-      "resolved": "https://registry.npmjs.org/word-wrap/-/word-wrap-1.2.5.tgz",
-      "integrity": "sha512-BN22B5eaMMI9UMtjrGd5g5eCYPpCPDUy0FJXbYsaT5zYxjFOckS53SQDE3pWkVoWpHXVb3BrYcEN4Twa55B5cA==",
-      "dev": true
-    },
-    "wrap-ansi": {
-      "version": "5.1.0",
-      "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz",
-      "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==",
-      "dev": true,
-      "requires": {
-        "ansi-styles": "^3.2.0",
-        "string-width": "^3.0.0",
-        "strip-ansi": "^5.0.0"
-      }
-    },
-    "wrappy": {
-      "version": "1.0.2",
-      "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
-      "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=",
-      "dev": true
-    },
-    "write": {
-      "version": "1.0.3",
-      "resolved": "https://registry.npmjs.org/write/-/write-1.0.3.tgz",
-      "integrity": "sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig==",
-      "dev": true,
-      "requires": {
-        "mkdirp": "^0.5.1"
-      }
-    },
-    "y18n": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz",
-      "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==",
-      "dev": true
-    },
-    "yallist": {
-      "version": "4.0.0",
-      "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
-      "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==",
-      "dev": true
-    },
-    "yargs": {
-      "version": "14.2.3",
-      "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz",
-      "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==",
-      "dev": true,
-      "requires": {
-        "cliui": "^5.0.0",
-        "decamelize": "^1.2.0",
-        "find-up": "^3.0.0",
-        "get-caller-file": "^2.0.1",
-        "require-directory": "^2.1.1",
-        "require-main-filename": "^2.0.0",
-        "set-blocking": "^2.0.0",
-        "string-width": "^3.0.0",
-        "which-module": "^2.0.0",
-        "y18n": "^4.0.0",
-        "yargs-parser": "^15.0.1"
-      }
-    },
-    "yargs-parser": {
-      "version": "15.0.3",
-      "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.3.tgz",
-      "integrity": "sha512-/MVEVjTXy/cGAjdtQf8dW3V9b97bPN7rNn8ETj6BmAQL7ibC7O1Q9SPJbGjgh3SlwoBNXMzj/ZGIj8mBgl12YA==",
-      "dev": true,
-      "requires": {
-        "camelcase": "^5.0.0",
-        "decamelize": "^1.2.0"
-      }
-    },
-    "yargs-unparser": {
-      "version": "1.6.0",
-      "resolved": "https://registry.npmjs.org/yargs-unparser/-/yargs-unparser-1.6.0.tgz",
-      "integrity": "sha512-W9tKgmSn0DpSatfri0nx52Joq5hVXgeLiqR/5G0sZNDoLZFOr/xjBUDcShCOGNsBnEMNo1KAMBkTej1Hm62HTw==",
-      "dev": true,
-      "requires": {
-        "flat": "^4.1.0",
-        "lodash": "^4.17.15",
-        "yargs": "^13.3.0"
-      },
-      "dependencies": {
-        "yargs": {
-          "version": "13.3.0",
-          "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz",
-          "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==",
-          "dev": true,
-          "requires": {
-            "cliui": "^5.0.0",
-            "find-up": "^3.0.0",
-            "get-caller-file": "^2.0.1",
-            "require-directory": "^2.1.1",
-            "require-main-filename": "^2.0.0",
-            "set-blocking": "^2.0.0",
-            "string-width": "^3.0.0",
-            "which-module": "^2.0.0",
-            "y18n": "^4.0.0",
-            "yargs-parser": "^13.1.1"
-          }
-        },
-        "yargs-parser": {
-          "version": "13.1.1",
-          "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz",
-          "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==",
-          "dev": true,
-          "requires": {
-            "camelcase": "^5.0.0",
-            "decamelize": "^1.2.0"
-          }
-        }
-      }
-    }
-  }
-}
diff --git a/package.json b/package.json
deleted file mode 100644
index 0e3f4df..0000000
--- a/package.json
+++ /dev/null
@@ -1,26 +0,0 @@
-{
-  "name": "schemas-event-primary",
-  "version": "1.0.0",
-  "description": "Primary event JSONSchemas for Wikimedia & Mediawiki event data",
-  "license": "Apache-2.0",
-  "repository": {
-    "type": "git",
-    "url": "ssh://otto@gerrit.wikimedia.org:29418/schemas/event/primary"
-  },
-  "main": "index.js",
-  "scripts": {
-    "test": "mocha test/jsonschema",
-    "build-modified": "jsonschema-tools materialize-modified --no-git-add",
-    "build-new": "jsonschema-tools materialize"
-  },
-  "keywords": [
-    "jsonschema",
-    "json",
-    "event",
-    "stream"
-  ],
-  "devDependencies": {
-    "@wikimedia/jsonschema-tools": "^1.1.0",
-    "mocha": "^6.2.0"
-  }
-}
diff --git a/test/jsonschema/repository.test.js b/test/jsonschema/repository.test.js
deleted file mode 100644
index fee00b9..0000000
--- a/test/jsonschema/repository.test.js
+++ /dev/null
@@ -1,4 +0,0 @@
-
-'use strict';
-require('@wikimedia/jsonschema-tools').tests.all({ logLevel: 'info' });
-