"$schema": https://json-schema.org/draft/2020-12/schema title: OGC Building Blocks Register metadata schema type: object required: - name - status - dateTimeAddition - itemClass - version - dateOfLastChange properties: itemIdentifier: description: Unique identifier for this Building Block. type: string name: description: User-friendly name for this Building Block. type: string abstract: description: Brief documentation about this Building Block. type: string status: description: Status of this Building Block. enum: - retired - superseded - experimental - stable - under-development - invalid - reserved - submitted # Note: maybe these dateTime's could be normalized as { operations: { operationType: 'dateTime' } } dateTimeAddition: description: Date and time when this Building Block was added to the Register. type: string format: date-time pattern: '^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[\+-]\d{2}:\d{2})?$' dateTimeSupersession: description: Date and time when this Building Block was superseded in the Register. type: string format: date-time pattern: '^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[\+-]\d{2}:\d{2})?$' dateTimeRetirement: description: Date and time when this Building Block was retired from the Register. type: string format: date-time pattern: '^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[\+-]\d{2}:\d{2})?$' dateTimeInvalidation: description: Date and time when this Building Block was invalidated in the Register. type: string format: date-time pattern: '^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[\+-]\d{2}:\d{2})?$' itemClass: description: Type of Building Block. enum: - schema # Full JSON Schema object / feature type - datatype # Simple JSON Schema data type - path # OpenAPI path - parameter # OpenAPI parameter - header # OpenAPI header - cookie # OpenAPI cookie - api # Partial or full OpenAPI document register: description: Register to which this Building Block belongs. type: string version: description: Version for this Building Block. type: string dateOfLastChange: description: Latest modification date for this Building Block. type: string format: date pattern: '^\d{4}-\d{2}-\d{2}$' sources: description: Sources or references for the Building Block definition. type: array items: type: object required: - title properties: title: description: Title of the source. type: string link: description: Link to the source document. type: string format: uri link: description: Link to a website or additional documentation for this Building Block. type: string format: uri links: description: List of links to websites or additional documentation for this Building Block. type: array items: type: object required: - title - href properties: title: description: Title for the link type: string href: description: URL for the link type: string format: uri rel: description: Relationship to the linked document type: string notes: description: Additional notes or comments type: string tags: description: List of tags attached to this Building Block. type: array items: type: string concept: description: Link to a conceptual model class for this Building Block, most of the time in the OGC Rainbow. type: array items: type: object required: - label - link properties: label: type: string link: type: string format: uri schema: description: URL (or array thereof) for JSON schemas of this Building Block. oneOf: - type: array items: type: string - type: string openAPIDocument: description: URL or path to OpenAPI document type: string ldContext: description: Link to JSON-LD document with @context for this Building Block. type: string format: uri examples: description: List of examples showing how to use this Building Block. type: array predecessor: description: Identifier or URI of the predecessor of this Building Block. type: string successor: description: Identifier or URI of the predecessor of this Building Block. type: string isProfileOf: description: | Identifier of another Building Block that this Building Block is a profile of, or list thereof. Profiling in this context is akin to inheritance. oneOf: - type: string - type: array items: type: string dependsOn: description: Identifiers of other Building Blocks that this Building Block depends on type: array items: type: string seeAlso: description: Identifier or URI of other Building Blocks that may be of interest type: array items: type: string requirementClasses: description: URI(s) of requirement classes that can be used to validate this Building Block type: array items: type: string format: uri superBBlock: description: Whether this is a Super Building Block, aggregating the schema of its descendants type: boolean group: description: An identifier to group Building Blocks together type: string shaclRules: description: List of SHACL files to use for RDF validation. Can be URLs or file paths. type: array items: type: string shaclClosures: description: | List of RDF files or URLs that will be used as SHACL closures for RDF validation. They will be merged with the SHACL closures for every snippet, if any. type: array items: type: string extends: description: | Used to declare that the schema for this Building Block extends another one. The schemas will be joined with an "allOf" declaration. oneOf: - description: Identifier of the base Building Block to extend type: string - type: object required: - itemIdentifier properties: itemIdentifier: description: Identifier of the base Building Block to extend type: string path: description: | Property path where the schema for this Building Block will be inserted, in the format "a.b.c.d". If a property is an array, "prop[]" notation can be used (e.g., "a.b[].c.d[]"). type: string highlighted: description: | Whether this Building Block should be "highlighted" or "featured" within the register, potentially used as an entry point for the collection type: boolean conformanceClasses: description: | List of conformance classes (URIs) that this building block refers to. type: array items: type: string pattern: '^https?://.*'