{ "schemaVersion": 2, "sourceDirectories": [ "src/application", "src/presentation", "src/domain" ], "registries": [ { "registryId": "FE-REG-ROUTE", "path": "src/features/installed-feature-contracts.ts", "exportName": "ROUTE_REGISTRY", "owner": "feature-frontend-routing-release-recovery-runtime", "keyField": "routeId", "requiredFields": [ "routeId", "path", "layoutGroup", "paramsSchema", "searchSchema", "access", "loadingSurface", "errorSurface", "chunkId", "title", "navigationLabel", "navigationOrder" ], "fieldTypes": { "routeId": "string", "path": "string", "layoutGroup": "string", "paramsSchema": "string|null", "searchSchema": "string|null", "access": "string", "loadingSurface": "string", "errorSurface": "string", "chunkId": "string", "title": "string", "navigationLabel": "string|null", "navigationOrder": "integer|null" }, "uniqueFields": ["routeId", "path", "chunkId"], "allowedValues": { "access": ["public", "session-required"], "layoutGroup": ["PUBLIC", "STUDIO"], "paramsSchema": [ null, "NotFoundSplat", "ReferenceResourceParams", "TechLogExploreKindParams", "TechLogSlugParams", "TechLogVersionParams", "TechLogDocumentIdParams", "TechLogPublicationEventIdParams", "TechLogStudioSplat" ], "searchSchema": [ null, "ReferenceResourceListQuery", "TechLogHomeSearch", "TechLogExploreSearch", "TechLogExploreKindSearch", "TechLogSearchQuery", "TechLogCaseStateSearch" ], "loadingSurface": [ "app-shell", "example-page", "reference-resource-list", "reference-resource-detail", "reference-resource-form", "reference-resource-status", "none" ], "errorSurface": [ "route-boundary", "feature-boundary", "not-found" ] }, "references": [ { "field": "routeId", "registryId": "FE-REG-ROUTE-RUNTIME", "targetField": "routeId" }, { "field": "paramsSchema", "registryId": "FE-REG-SCHEMA", "targetField": "schemaId" }, { "field": "searchSchema", "registryId": "FE-REG-SCHEMA", "targetField": "schemaId" } ], "consumers": [ { "path": "src/presentation/routes/app-router.tsx", "token": "ROUTE_REGISTRY" } ], "breakingFields": [ "routeId", "path", "layoutGroup", "paramsSchema", "searchSchema", "access", "chunkId" ] }, { "registryId": "FE-REG-ROUTE-RUNTIME", "path": "src/features/installed-feature-contracts.ts", "exportName": "ROUTE_RUNTIME_CONTRACT", "owner": "feature-frontend-routing-release-recovery-runtime", "keyField": "routeId", "requiredFields": [ "routeId", "moduleId", "paramsCodec", "searchCodec" ], "fieldTypes": { "routeId": "string", "moduleId": "string", "paramsCodec": "string", "searchCodec": "string" }, "uniqueFields": ["routeId", "moduleId"], "references": [ { "field": "routeId", "registryId": "FE-REG-ROUTE", "targetField": "routeId" }, { "field": "paramsCodec", "registryId": "FE-REG-SCHEMA", "targetField": "schemaId" }, { "field": "searchCodec", "registryId": "FE-REG-SCHEMA", "targetField": "schemaId" } ], "consumers": [ { "path": "src/presentation/routes/route-codecs.ts", "token": "ROUTE_RUNTIME_CONTRACT" } ], "breakingFields": [ "routeId", "moduleId", "paramsCodec", "searchCodec" ] }, { "registryId": "FE-REG-API", "path": "src/features/installed-feature-contracts.ts", "exportName": "API_OPERATIONS", "owner": "feature-frontend-api-client-response-envelope-contract", "keyField": "operationId", "requiredFields": [ "method", "path", "operationId", "auth", "timeoutMs", "idempotency", "retry", "requestSource", "requestSchema", "responseSchema", "owner" ], "fieldTypes": { "method": "string", "path": "string", "operationId": "string", "auth": "string", "timeoutMs": "integer|null", "idempotency": "string", "retry": "string", "requestSource": "string", "requestSchema": "string", "responseSchema": "string", "owner": "string" }, "uniqueFields": ["operationId"], "allowedValues": { "method": ["GET", "POST", "PUT", "PATCH", "DELETE"], "auth": ["none", "external-session"], "idempotency": ["safe", "keyed", "none"], "retry": ["runtime", "never"], "requestSource": ["none", "search", "body"] }, "references": [ { "field": "requestSchema", "registryId": "FE-REG-SCHEMA", "targetField": "schemaId" }, { "field": "responseSchema", "registryId": "FE-REG-SCHEMA", "targetField": "schemaId" } ], "consumerIdentityField": "operationId", "consumerDirectories": [ "src/features/reference-feature/adapters", "src/features/reference-feature/application" ], "breakingFields": [ "method", "path", "operationId", "auth", "idempotency", "requestSource", "requestSchema", "responseSchema" ] }, { "registryId": "FE-REG-SCHEMA", "path": "src/features/installed-feature-contracts.ts", "exportName": "SCHEMA_REGISTRY", "owner": "feature-frontend-contract-schema-registry", "keyField": "schemaId", "requiredFields": ["schemaId", "boundary", "owner", "runtime"], "fieldTypes": { "schemaId": "string", "boundary": "string", "owner": "string", "runtime": "string" }, "uniqueFields": ["schemaId"], "allowedValues": { "boundary": [ "route-params", "route-search", "route-search-api-request", "api-request", "api-response" ], "runtime": ["zod"] }, "consumerIdentityField": "schemaId", "consumerDirectories": [ "src/presentation/routes", "src/features/tech-log/presentation", "src/features/reference-feature/contracts" ], "breakingFields": ["schemaId", "boundary", "runtime"] }, { "registryId": "FE-REG-ENV", "path": "src/contracts/env.ts", "exportName": "ENV_REGISTRY", "owner": "feature-frontend-env-runtime-config-contract", "requiredFields": ["phase", "classification", "required", "defaultValue"], "fieldTypes": { "phase": "string", "classification": "string", "required": "boolean", "defaultValue": "string|integer|boolean|null" }, "allowedValues": { "phase": ["build", "runtime"], "classification": [ "public", "public-sensitive", "public-metadata", "compile-time" ] }, "consumers": [ { "path": "src/bootstrap/runtime-config-schema.ts", "token": "APP_ENV" }, { "path": "src/contracts/env.ts", "token": "getBuildConfig" } ], "breakingFields": ["phase", "classification", "required"] }, { "registryId": "FE-REG-STORAGE", "path": "src/contracts/storage-keys.ts", "exportName": "STORAGE_REGISTRY", "owner": "feature-frontend-storage-registry-contract", "keyField": "logicalName", "requiredFields": [ "logicalName", "physicalKey", "backend", "classification", "schemaVersion", "valueCodec", "ttl", "migration", "quotaFallback" ], "fieldTypes": { "logicalName": "string", "physicalKey": "string", "backend": "string", "classification": "string", "schemaVersion": "integer", "valueCodec": "string", "ttl": "integer|string|null", "migration": "string", "quotaFallback": "string" }, "uniqueFields": ["logicalName", "physicalKey"], "allowedValues": { "backend": [ "memory", "sessionStorage", "localStorage", "disabled", "forbidden" ], "classification": [ "public-preference", "opaque-cache", "sensitive-forbidden" ], "valueCodec": [ "color-scheme-v1", "opaque-string-v1", "none" ], "migration": ["discard"], "quotaFallback": ["memory", "no-persist", "feature-disable"] }, "consumerIdentityField": "logicalName", "consumerDirectories": ["src", "tests"], "orphanExemptRows": ["QUERY_PERSISTENCE", "AUTH_TOKEN"], "breakingFields": [ "logicalName", "physicalKey", "backend", "classification", "schemaVersion", "valueCodec", "migration" ] }, { "registryId": "FE-REG-ERROR", "path": "src/contracts/errors.ts", "exportName": "ERROR_REGISTRY", "owner": "feature-frontend-error-classification-boundary-contract", "keyField": "kind", "requiredFields": [ "kind", "defaultRetryable", "severity", "userMessageKey", "action", "telemetryEvent", "redaction" ], "fieldTypes": { "kind": "string", "defaultRetryable": "boolean", "severity": "string", "userMessageKey": "string", "action": "string", "telemetryEvent": "string", "redaction": "array" }, "uniqueFields": ["kind"], "allowedValues": { "severity": ["info", "warning", "error"], "action": [ "retry", "reauth", "navigate", "reload-once", "contact-support", "none" ] }, "consumers": [ { "path": "src/adapters/http/client.ts", "token": "failure(" } ], "breakingFields": ["kind", "userMessageKey", "action", "telemetryEvent"] }, { "registryId": "FE-REG-QUERY-INVALIDATION", "path": "src/features/installed-feature-contracts.ts", "exportName": "INVALIDATION_REGISTRY", "rowsPath": "edges", "rowKeyFields": [ "topicId", "namespace.namespaceId", "namespace.namespaceVersion" ], "owner": "feature-frontend-server-state-caching-contract", "requiredFields": [ "topicId", "namespace.namespaceId", "namespace.namespaceVersion" ], "fieldTypes": { "topicId": "string", "namespace.namespaceId": "string", "namespace.namespaceVersion": "integer" }, "uniqueFieldSets": [ [ "topicId", "namespace.namespaceId", "namespace.namespaceVersion" ] ], "snapshotProjection": { "singletonRowKey": "invalidation-graph", "canonicalArrayKeyFields": { "topics": ["$value"], "namespaces": ["namespaceId", "namespaceVersion"], "edges": [ "topicId", "namespace.namespaceId", "namespace.namespaceVersion" ] } }, "consumers": [ { "path": "src/bootstrap/runtime-adapters.ts", "token": "indexInvalidationRegistry(INVALIDATION_REGISTRY)" } ], "breakingFields": ["topics", "namespaces", "edges"] }, { "registryId": "FE-REG-QUERY-INVALIDATION-TOPIC-VERSION", "path": "src/features/installed-feature-contracts.ts", "exportName": "INVALIDATION_TOPIC_VERSIONS", "rowKeyFields": ["topicId"], "owner": "feature-frontend-server-state-caching-contract", "requiredFields": ["topicId", "topicVersion"], "fieldTypes": { "topicId": "string", "topicVersion": "integer" }, "uniqueFields": ["topicId"], "consumers": [ { "path": "src/bootstrap/runtime-adapters.ts", "token": "indexInvalidationTopicVersions(" } ], "breakingFields": ["topicId", "topicVersion"] }, { "registryId": "FE-REG-TELEMETRY", "path": "src/contracts/telemetry.ts", "exportName": "TELEMETRY_REGISTRY", "owner": "feature-frontend-diagnostics-telemetry-runtime", "keyField": "eventName", "requiredFields": [ "eventName", "trigger", "requiredAttributes", "optionalAttributes", "forbiddenAttributes", "sampling", "delivery" ], "fieldTypes": { "eventName": "string", "trigger": "string", "requiredAttributes": "array", "optionalAttributes": "array", "forbiddenAttributes": "array", "sampling": "string", "delivery": "string" }, "uniqueFields": ["eventName"], "allowedValues": { "delivery": ["best-effort"] }, "consumers": [ { "path": "scripts/check-diagnostics.ts", "token": "TELEMETRY_REGISTRY" } ], "breakingFields": [ "eventName", "requiredAttributes", "forbiddenAttributes", "delivery" ] }, { "registryId": "FE-REG-RELEASE", "path": "src/contracts/release-tokens.ts", "exportName": "RELEASE_TOKEN_REGISTRY", "owner": "feature-frontend-release-cache-rollback-contract", "keyField": "token", "requiredFields": ["token", "source", "compatibilityRole"], "fieldTypes": { "token": "string", "source": "string", "compatibilityRole": "string" }, "uniqueFields": ["token"], "consumers": [ { "path": "src/bootstrap/load-release-manifest.ts", "token": "assetManifestHash" } ], "breakingFields": ["token", "source", "compatibilityRole"] } ] }