Runtime-visible, dependency-free annotations that assign JSON:API semantic roles to domain classes, records, and properties for later adapter mapping. User examples belong to Resources.
The public API is the
com.kazforge.jsonapi.annotation
package: @JsonApiResource,
@JsonApiId,
@JsonApiLocalId,
@JsonApiAttribute,
@JsonApiRelationship,
@JsonApiMeta, and
@JsonApiRelationshipMeta.
Annotations assign roles only. Configured Jackson owns property discovery, visibility, external
names, mix-ins, creators, and conversion. @JsonApiResource.type() is JSON:API semantic data rather
than a Java property name.
id and lid are independent roles and never fall back to one another; there is no conventional
implicit lid. Resource meta, relationship meta, and per-linkage identifier meta are distinct.
Identifier meta uses the neutral RelationshipLinkage<T, M> value rather than another annotation.
This module provides no codec, document model, inclusion/fetch/cascade policy, query parser, or framework integration. See the architecture overview, ADR-004, and ADR-011.