1How to read this document
This document uses RFC 2119 guidance regarding normative terms: MUST / MUST NOT / REQUIRED / SHALL / SHALL NOT / SHOULD / SHOULD NOT / RECOMMENDED / MAY / OPTIONAL.
1.1What this document isn't
This document specifies only the definition of the
@tag directive. Tags have a number of useful applications including metadata and schema processing, none of which are specified within this document.
2Example: Team Ownership Metadata
The following example demonstrates how team ownership over types and fields can be declaratively expressed via inline metadata. One might imagine a CI workflow which analyzes a schema diff and uses
@tag names to authorize or require approval for changes to parts of the graph.
This section is non‐normative. It describes the motivation behind the directives defined by this specification.
@tag directive is, in its simplest form, a mechanism for applying arbitrary string metadata to the fields and types of a schema. This metadata is potentially useful throughout the schema’s lifecycle, including, but not limited to, processing, static analysis, and documentation.
A schema which implements the
@tag spec MUST provide a definition which is compatible with the definition below: