Schema Overview
The Signal Tags schema defines product identity, provenance, and verification state.
Schema philosophy
Signal Tags is TypeScript-first with JSON-native contracts. The source of truth is JSON Schema; typed interfaces mirror those contracts.
Top-level fields
| Name | Type | Required | Description |
|---|---|---|---|
id | string | yes | Unique SignalTag identifier. |
status | enum | yes | Lifecycle state for the tag. |
productId | string | yes | Product reference identifier. |
organizationId | string | yes | Tenant/issuer scope owner. |
createdAt | date-time | yes | Creation timestamp. |
lotId | string | no | Optional lot linkage. |
batchId | string | no | Optional batch linkage. |
metadata | object | no | Industry extension object. |
expiresAt | date-time | no | Optional expiry timestamp. |
revokedAt | date-time | no | Optional revocation timestamp. |
Product attributes
Signal Tags keeps core fields stable and uses metadata extensions for domain-specific attributes such as:
gtin,name,manufacturerudi(healthcare)ndc(pharma)
Status values
manufacturedin_transitreceivedverifiedrecalledexpiredrevoked
Events and chain of custody
The related TraceEvent schema tracks custody and lifecycle transitions with fields like:
eventType, occurredAt, locationId, actorId, and optional metadata.
Extending the schema
Industry add-ons should be additive and backward-compatible:
- Put optional extensions under
metadata. - Keep base fields stable for cross-endpoint compatibility.