flowchart TB
Root(["xAPI Statement"]):::root
Actor["actor
Required"]:::required
Verb["verb
Required"]:::required
Object["object
Required"]:::required
Result["result
Optional"]:::optional
Context["context
Optional"]:::optional
subgraph Meta["Metadata — set by LRS or client"]
Id["id
Negotiated"]:::negotiated
Timestamp["timestamp
Client sets"]:::clientmeta
Stored["stored
LRS sets"]:::lrsmeta
Authority["authority
LRS sets"]:::lrsmeta
Version["version
LRS sets"]:::lrsmeta
end
Root ==> Actor
Root ==> Verb
Root ==> Object
Root -.-> Result
Root -.-> Context
Root -.-> Meta
click Root call showFieldInfo("root")
click Actor call showFieldInfo("actor")
click Verb call showFieldInfo("verb")
click Object call showFieldInfo("object")
click Result call showFieldInfo("result")
click Context call showFieldInfo("context")
click Id call showFieldInfo("id")
click Timestamp call showFieldInfo("timestamp")
click Stored call showFieldInfo("stored")
click Authority call showFieldInfo("authority")
click Version call showFieldInfo("version")
classDef root fill:#1e293b,stroke:#0f172a,color:#fff,font-size:15px,font-weight:bold
classDef required fill:#4338ca,stroke:#312e81,color:#fff,font-size:14px,font-weight:bold
classDef optional fill:#0d9488,stroke:#134e4a,color:#fff,font-size:14px
classDef lrsmeta fill:#16a34a,stroke:#14532d,color:#fff,font-size:13px
classDef clientmeta fill:#0369a1,stroke:#0c4a6e,color:#fff,font-size:13px
classDef negotiated fill:#f59e0b,stroke:#b45309,color:#fff,font-size:13px
linkStyle default stroke:#64748b,stroke-width:2px
Field Details
Required (actor, verb, object)
Optional payload (result, context)
Client-set metadata (id, timestamp)
LRS-set metadata (stored, authority, version)
Negotiated (id — client may set; LRS mints if absent)