flowchart TD
subgraph LRPEnv ["Learning Record Provider — broader category"]
AP["Activity Provider
creates statements"]:::apNode
end
POST["POST /statements"]:::wireNode
LRS["LRS
Learning Record Store"]:::lrsNode
GET["GET /statements"]:::wireNode
subgraph ConsumerEnv ["Activity Consumer - reads statements"]
AC["Activity Consumer"]:::acNode
Dash["Dashboard"]:::subNode
Rec["Recommender"]:::subNode
Grade["Grade Export"]:::subNode
end
AP --> POST
POST --> LRS
LRS --> GET
GET --> AC
AC --> Dash
AC --> Rec
AC --> Grade
click AP call showRoleInfo("ap")
click POST call showRoleInfo("post")
click LRS call showRoleInfo("lrs")
click GET call showRoleInfo("get")
click AC call showRoleInfo("consumer")
click Dash call showRoleInfo("dashboard")
click Rec call showRoleInfo("recommender")
click Grade call showRoleInfo("grade")
classDef apNode fill:#4338ca,stroke:#312e81,color:#fff,font-size:14px,font-weight:bold
classDef lrsNode fill:#d97706,stroke:#92400e,color:#fff,font-size:15px,font-weight:bold
classDef acNode fill:#0d9488,stroke:#134e4a,color:#fff,font-size:14px,font-weight:bold
classDef subNode fill:#ccfbf1,stroke:#0d9488,color:#0f766e,font-size:12px
classDef wireNode fill:#0369a1,stroke:#0c4a6e,color:#fff,font-size:12px
linkStyle default stroke:#64748b,stroke-width:2px