Validate MSEL
Dry run: the report this payload would produce. Saves nothing.
Authorizations
Section titled “Authorizations”Request Bodyrequired
Section titled “Request Bodyrequired”PUT /ttx/{ttx_id}/msel – the whole MSEL in one save, like the needs
form: a DRAFT may be incomplete (the validation report judges it), only
what can never be stored is rejected (unknown references, limits), and
collections are full-replace keyed by id. revision is the one the
client edited (optimistic locking).
object
A simulated actor. id is set for a saved row; key is how injects
in the same payload refer to it – the id itself for a saved row, any
temporary string for a new one (same scheme as the needs form).
object
Where a simulated actor comes from – the actor library’s levels. An exercise’s cast only holds copies; the origin says of what.
object
An inject’s content rendered as a simulated artifact. The body is the
inject’s own content; these are the template’s other fields, whose
meaning follows kind (email: from, address, to, subject, date; press
release: outlet, dateline, headline, date; social post: author, handle,
date; chat message: sender, channel, date). All plain text: the
Playground draws them, nothing is ever rendered as markup.
object
How the Playground renders an inject’s content as a simulated artifact (a template drawn by the app, never uploaded markup).
Whose activity an inject’s ATT&CK techniques are: a threat actor of the scenario’s, or noise – unrelated activity (other attackers, commodity malware, coincidences, false positives) that tests the players’ triage. None (the column null): no ATT&CK at all.
An ATT&CK technique under the tactic it serves, by id. Whether it exists is checked against the MSEL’s pinned release by the service (the payload doesn’t carry the release).
object
An uploaded file of the MSEL handed out with the inject (in order).
object
What an inject is, and so what it asks of the table: an inject that evaluates objectives (INJ), a discussion slide – a debrief or reflection prompt, no objective, not in the EEG nor the coverage (DSC) –, or a poll the Players vote on, outside the evaluation too (POL).
An uploaded image of the MSEL shown with the inject (in order).
object
object
An impact meter: what the polls’ decisions add up on.
object
object
A threat actor of the scenario (see MselThreatActor). key is how
injects in the same payload attribute to it (the id for a saved row).
object
Where a simulated actor comes from – the actor library’s levels. An exercise’s cast only holds copies; the origin says of what.
A technique a threat actor uses, as MITRE records it: no tactic (a technique may serve several).
object
Responses
Section titled “Responses”Successful Response
ready blocks DRAFT -> READY_FOR_APPROVAL, approved additionally
blocks READY_FOR_APPROVAL -> APPROVED; warnings never block.
object
One rule a form breaks. section is the form section (0-9) to send
the user to; field the field within it; item_id the row (need,
objective) or value (capability, approver kind) concerned, if any.
One rule a form breaks. section is the form section (0-9) to send
the user to; field the field within it; item_id the row (need,
objective) or value (capability, approver kind) concerned, if any.
One rule a form breaks. section is the form section (0-9) to send
the user to; field the field within it; item_id the row (need,
objective) or value (capability, approver kind) concerned, if any.
Example generated
{ "approved": [ { "code": "example", "field": "example", "item_id": "example", "section": 1 } ], "ready": [ { "code": "example", "field": "example", "item_id": "example", "section": 1 } ], "warnings": [ { "code": "example", "field": "example", "item_id": "example", "section": 1 } ]}Validation Error
object
object
object
Example generated
{ "detail": [ { "ctx": {}, "input": "example", "loc": [ "example" ], "msg": "example", "type": "example" } ]}