Find lecture clips for a lesson: start and end times, curriculum codes, Levels, credit and licence.
Maintain this server? Claim it
Call this server's tools from your browser. Nothing to install.
Requests go through mcptry because browsers can't call most MCP servers directly. Header values are sent to the server for that request only and are never stored or logged.
Tool list from our last check. Connect live to refresh it.
One study guide's topics in the course's order: each topic's unit, name, what it covers, its codes in the curriculum (section numbers), and its clips (the guide's own picks), recommended or fallback as in a topic's clip search. The guide is named by its id ("ontario/physics/grade-12"), or by its board and course ("Ontario SPH4U", "England GCSE Biology"). unit, section_code and topic limit it to part of the guide; it answers a page of topics at a time. Several matching guides: it answers candidates with their ids. Typical request: "what does SPH4U cover, with clips". Each clip has its clip_id, lecture, start_seconds, suggested_end_seconds, curriculum place, play_url, classroom_share_url, credit line and licence note. teaching.role (teaches, uses or mentions) and teaching.depth (0, named only, to 3, a thorough treatment) say how an AI review of the transcript judged the moment (judged_by "ai_transcript_review"; not_judged where none was made).
The age group of the students the class is for: child (under 13), teen (13 to 17) or adult (18 and over). Bettyapp gives clips from lectures that suit the age.
The guide: its id, or its board and course name or code, for example "ontario/physics/grade-12", "Ontario SPH4U" or "Cambridge IGCSE Physics".
Which page of topics, from 1.
Only the topics of this unit, by its name or a word of it, for example "Dynamics".
Only the topics whose name or description has these words.
How many topics a page, 1 to 25.
Only the topics with this code, or under it: "B2.1", or "4.4" for 4.4.1, 4.4.2 ...
The class's Level: elementary (Elementary (K–5)), middle_school (Middle School (6–8)), high_school (High School (9–12)), university_year1 (Year 1 University), university_upper (Upper Year University), graduate (Graduate & Professional). A clip at this Level comes first among clips alike; without it, every Level.
Pick your client. Values in capitals, like YOUR_TOKEN, are yours to fill in.
Run in a terminal
claude mcp add --transport http teachers https://bettyapp.org/mcp/teachers
One study guide's topics in the course's order: each topic's unit, name, what it covers, its codes in the curriculum (section numbers), and its clips (the guide's own picks), recommended or fallback as in a topic's clip search. The guide is named by its id ("ontario/physics/grade-12"), or by its board and course ("Ontario SPH4U", "England GCSE Biology"). unit, section_code and topic limit it to part of the guide; it answers a page of topics at a time. Several matching guides: it answers candidates with their ids. Typical request: "what does SPH4U cover, with clips". Each clip has its clip_id, lecture, start_seconds, suggested_end_seconds, curriculum place, play_url, classroom_share_url, credit line and licence note. teaching.role (teaches, uses or mentions) and teaching.depth (0, named only, to 3, a thorough treatment) say how an AI review of the transcript judged the moment (judged_by "ai_transcript_review"; not_judged where none was made).
| Argument | Type | Description |
|---|---|---|
| page | integer | Which page of topics, from 1. |
| unit | string | Only the topics of this unit, by its name or a word of it, for example "Dynamics". |
| topic | string | Only the topics whose name or description has these words. |
| age_group* | string | The age group of the students the class is for: child (under 13), teen (13 to 17) or adult (18 and over). Bettyapp gives clips from lectures that suit the age. |
| curriculum* | string | The guide: its id, or its board and course name or code, for example "ontario/physics/grade-12", "Ontario SPH4U" or "Cambridge IGCSE Physics". |
| max_results | integer | How many topics a page, 1 to 25. |
| section_code | string | Only the topics with this code, or under it: "B2.1", or "4.4" for 4.4.1, 4.4.2 ... |
| education_level | string | The class's Level: elementary (Elementary (K–5)), middle_school (Middle School (6–8)), high_school (High School (9–12)), university_year1 (Year 1 University), university_upper (Upper Year University), graduate (Graduate & Professional). A clip at this Level comes first among clips alike; without it, every Level. |
{
"type": "object",
"required": [
"curriculum",
"age_group"
],
"properties": {
"page": {
"type": "integer",
"default": 1,
"minimum": 1,
"description": "Which page of topics, from 1."
},
"unit": {
"type": "string",
"maxLength": 200,
"description": "Only the topics of this unit, by its name or a word of it, for example \"Dynamics\"."
},
"topic": {
"type": "string",
"maxLength": 200,
"description": "Only the topics whose name or description has these words."
},
"age_group": {
"enum": [
"child",
"teen",
"adult"
],
"type": "string",
"description": "The age group of the students the class is for: child (under 13), teen (13 to 17) or adult (18 and over). Bettyapp gives clips from lectures that suit the age."
},
"curriculum": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The guide: its id, or its board and course name or code, for example \"ontario/physics/grade-12\", \"Ontario SPH4U\" or \"Cambridge IGCSE Physics\"."
},
"max_results": {
"type": "integer",
"default": 10,
"maximum": 25,
"minimum": 1,
"description": "How many topics a page, 1 to 25."
},
"section_code": {
"type": "string",
"maxLength": 50,
"description": "Only the topics with this code, or under it: \"B2.1\", or \"4.4\" for 4.4.1, 4.4.2 ..."
},
"education_level": {
"enum": [
"elementary",
"middle_school",
"high_school",
"university_year1",
"university_upper",
"graduate"
],
"type": "string",
"description": "The class's Level: elementary (Elementary (K–5)), middle_school (Middle School (6–8)), high_school (High School (9–12)), university_year1 (Year 1 University), university_upper (Upper Year University), graduate (Graduate & Professional). A clip at this Level comes first among clips alike; without it, every Level."
}
},
"additionalProperties": false
}One clip in full, by the clip_id a tool gave ("1234:osmosis", "1234:osmosis:2"), or a lecture's id and a second ("1234@300", the moment starting nearest it, within 90 seconds): everything a clip has in a topic's clip search, and the moment's summary, the questions it answers, its topics and the teacher's first words (a short quotation, not the transcript). A lecture no longer on Bettyapp answers available false, with its course's page and no clip to play. Each clip has its clip_id, lecture, start_seconds, suggested_end_seconds, curriculum place, play_url, classroom_share_url, credit line and licence note. teaching.role (teaches, uses or mentions) and teaching.depth (0, named only, to 3, a thorough treatment) say how an AI review of the transcript judged the moment (judged_by "ai_transcript_review"; not_judged where none was made).
| Argument | Type | Description |
|---|---|---|
| clip_id* | string | The clip's id as a tool gave it, or "<lecture id>@<second>". |
| age_group* | string | The age group of the students the class is for: child (under 13), teen (13 to 17) or adult (18 and over). Bettyapp gives clips from lectures that suit the age. |
{
"type": "object",
"required": [
"clip_id",
"age_group"
],
"properties": {
"clip_id": {
"type": "string",
"maxLength": 260,
"minLength": 1,
"description": "The clip's id as a tool gave it, or \"<lecture id>@<second>\"."
},
"age_group": {
"enum": [
"child",
"teen",
"adult"
],
"type": "string",
"description": "The age group of the students the class is for: child (under 13), teen (13 to 17) or adult (18 and over). Bettyapp gives clips from lectures that suit the age."
}
},
"additionalProperties": false
}A topic at each Level Bettyapp has a lecture for it, from school to university: one clip a Level, the Levels as the lectures are placed. Useful for an easier or a harder explanation, or for a mixed class. A Level with no lecture is left out; Bettyapp says nothing about a Level it has no lecture at. evidence says whether the clip is recommended (judged to teach) or a fallback. Each clip has its clip_id, lecture, start_seconds, suggested_end_seconds, curriculum place, play_url, classroom_share_url, credit line and licence note. teaching.role (teaches, uses or mentions) and teaching.depth (0, named only, to 3, a thorough treatment) say how an AI review of the transcript judged the moment (judged_by "ai_transcript_review"; not_judged where none was made).
| Argument | Type | Description |
|---|---|---|
| topic* | string | The topic's name, for example "photosynthesis". |
| age_group* | string | The age group of the students the class is for: child (under 13), teen (13 to 17) or adult (18 and over). Bettyapp gives clips from lectures that suit the age. |
{
"type": "object",
"required": [
"topic",
"age_group"
],
"properties": {
"topic": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The topic's name, for example \"photosynthesis\"."
},
"age_group": {
"enum": [
"child",
"teen",
"adult"
],
"type": "string",
"description": "The age group of the students the class is for: child (under 13), teen (13 to 17) or adult (18 and over). Bettyapp gives clips from lectures that suit the age."
}
},
"additionalProperties": false
}For a topic, the topics recommended before it (recommended_before), those that come next (next), and related topics, each with its best clip judged to teach it, or a fallback moment with its reason. The order comes from how courses teach the topics: a suggestion, not a rule, and only where courses agree; a topic may have none. Useful for planning a sequence of lessons or a review: "what should my class know before the chain rule". Each clip has its clip_id, lecture, start_seconds, suggested_end_seconds, curriculum place, play_url, classroom_share_url, credit line and licence note. teaching.role (teaches, uses or mentions) and teaching.depth (0, named only, to 3, a thorough treatment) say how an AI review of the transcript judged the moment (judged_by "ai_transcript_review"; not_judged where none was made).
| Argument | Type | Description |
|---|---|---|
| topic* | string | The topic's name, for example "chain rule" or "osmosis". |
| age_group* | string | The age group of the students the class is for: child (under 13), teen (13 to 17) or adult (18 and over). Bettyapp gives clips from lectures that suit the age. |
| education_level | string | The class's Level: elementary (Elementary (K–5)), middle_school (Middle School (6–8)), high_school (High School (9–12)), university_year1 (Year 1 University), university_upper (Upper Year University), graduate (Graduate & Professional). A clip at this Level comes first among clips alike; without it, every Level. |
{
"type": "object",
"required": [
"topic",
"age_group"
],
"properties": {
"topic": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The topic's name, for example \"chain rule\" or \"osmosis\"."
},
"age_group": {
"enum": [
"child",
"teen",
"adult"
],
"type": "string",
"description": "The age group of the students the class is for: child (under 13), teen (13 to 17) or adult (18 and over). Bettyapp gives clips from lectures that suit the age."
},
"education_level": {
"enum": [
"elementary",
"middle_school",
"high_school",
"university_year1",
"university_upper",
"graduate"
],
"type": "string",
"description": "The class's Level: elementary (Elementary (K–5)), middle_school (Middle School (6–8)), high_school (High School (9–12)), university_year1 (Year 1 University), university_upper (Upper Year University), graduate (Graduate & Professional). A clip at this Level comes first among clips alike; without it, every Level."
}
},
"additionalProperties": false
}Every board, exam body or curriculum with a study guide on Bettyapp (Ontario, OCR, Cambridge International, Singapore ...), each with its guides: the guide's id, title, course, Subject, Level, grade and how many topics it has. Useful for a guide's id, and for which courses Bettyapp follows. It lists only the guides Bettyapp shows. Example: the guide "ontario/physics/grade-12", "Studying Ontario Grade 12 Physics (SPH4U)".
No arguments.
{
"type": "object",
"properties": {},
"additionalProperties": false
}Finds the few minutes inside real lectures where a teacher explains a topic, for a teacher planning a class, by the topic's name and the class's Level. Typical requests it serves: "a few minutes of a lecture on the chain rule for my Grade 12 class", "a concrete example of entropy for first-year chemistry". Example: the chain rule returns MIT 18.01 Lecture 04 from 28:03 to 33:44 of the 46-minute lecture. recommended: clips judged to teach the topic, best first. fallback: when too few are recommended, related moments with their fallback_reason, not teaching clips. Neither: Bettyapp has no lecture on it. Each clip has its clip_id, lecture, start_seconds, suggested_end_seconds, curriculum place, play_url, classroom_share_url, credit line and licence note. teaching.role (teaches, uses or mentions) and teaching.depth (0, named only, to 3, a thorough treatment) say how an AI review of the transcript judged the moment (judged_by "ai_transcript_review"; not_judged where none was made).
| Argument | Type | Description |
|---|---|---|
| topic* | string | The topic's name, as a teacher says it in a lecture: one to four words, for example "mitosis" or "chain rule", not the whole request "a short clip on mitosis for my grade 10 class". |
| language | string | Only lectures spoken in this language, as its code: en, es, pt. Without it, every language. |
| age_group* | string | The age group of the students the class is for: child (under 13), teen (13 to 17) or adult (18 and over). Bettyapp gives clips from lectures that suit the age. |
| max_results | integer | How many clips, 1 to 10. |
| curriculum_code | string | A course or syllabus place the class follows, as a study guide gives them: a section code ("B2.1", "4.4.1") or a course with it ("SPH4U B2.1"). A clip in it comes first among clips alike. |
| education_level | string | The class's Level: elementary (Elementary (K–5)), middle_school (Middle School (6–8)), high_school (High School (9–12)), university_year1 (Year 1 University), university_upper (Upper Year University), graduate (Graduate & Professional). A clip at this Level comes first among clips alike; without it, every Level. |
| target_duration_seconds | integer | About how long a clip the teacher wants, in seconds: among clips alike, the nearer length comes first. |
{
"type": "object",
"required": [
"topic",
"age_group"
],
"properties": {
"topic": {
"type": "string",
"maxLength": 200,
"minLength": 1,
"description": "The topic's name, as a teacher says it in a lecture: one to four words, for example \"mitosis\" or \"chain rule\", not the whole request \"a short clip on mitosis for my grade 10 class\"."
},
"language": {
"type": "string",
"pattern": "^[a-z]{2,3}$",
"description": "Only lectures spoken in this language, as its code: en, es, pt. Without it, every language."
},
"age_group": {
"enum": [
"child",
"teen",
"adult"
],
"type": "string",
"description": "The age group of the students the class is for: child (under 13), teen (13 to 17) or adult (18 and over). Bettyapp gives clips from lectures that suit the age."
},
"max_results": {
"type": "integer",
"default": 5,
"maximum": 10,
"minimum": 1,
"description": "How many clips, 1 to 10."
},
"curriculum_code": {
"type": "string",
"maxLength": 100,
"description": "A course or syllabus place the class follows, as a study guide gives them: a section code (\"B2.1\", \"4.4.1\") or a course with it (\"SPH4U B2.1\"). A clip in it comes first among clips alike."
},
"education_level": {
"enum": [
"elementary",
"middle_school",
"high_school",
"university_year1",
"university_upper",
"graduate"
],
"type": "string",
"description": "The class's Level: elementary (Elementary (K–5)), middle_school (Middle School (6–8)), high_school (High School (9–12)), university_year1 (Year 1 University), university_upper (Upper Year University), graduate (Graduate & Professional). A clip at this Level comes first among clips alike; without it, every Level."
},
"target_duration_seconds": {
"type": "integer",
"maximum": 3600,
"minimum": 30,
"description": "About how long a clip the teacher wants, in seconds: among clips alike, the nearer length comes first."
}
},
"additionalProperties": false
}We read every tool's name, description and inputs the way the model will, looking for instructions hidden from you. A clean result means no warning signs, not a guarantee. Scanned Nov 10, 2026.
What changed in this server's tools since we started watching, newest first. Each change is scanned again.
A topic at each Level Bettyapp has a lecture for it, from school to university: one clip a Level, the Levels as the lectures are placed. Useful for an easier or a harder explanation, or for a mixed class. A Level with no lecture is left out; Bettyapp says nothing about a Level it has no lecture at. evidence says whether the clip is recommended (judged to teach) or a fallback. Each clip has its clip_id (the id of the clip in full), theclip_id, lecture, start_seconds, suggested_end_seconds (the next moment's start, else two minutes on) and estimated_segment_seconds, match_source (study_guide, topic_page or transcript_search), itssuggested_end_seconds, curriculum place (status checked: the guide's own pick;place, mapped:play_url, theclassroom_share_url, topiccredit isline inand thelicence guide),note. captions_available,teaching.role play_url(teaches, (theuses lectureor pagementions) fromand theteaching.depth start),(0, classroom_share_urlnamed (Shareonly, to Google Classroom), the credit line and the licence with3, a short note. Eachthorough cliptreatment) sayssay how an AI review of itsthe transcript judged the moment to treat the topic (teaching.role and teaching.depth, judged_by(judged_by "ai_transcript_review"; not_judged where no reviewnone was made), in the reviewer's own words:
- "teaches": the moment is about the topic itself: it defines the topic, explains it, or works an example whose point is the topic. A student who wants to learn this topic would learn some of it here.
- "uses": the moment applies the topic, or relies on it, while its point is something else. A calculation that applies a rule on the way to another result uses the rule, however carefully each step is shown.
- "mentions": the moment names the topic in passing, without explaining or using it.
- 0: named only;
- 1: a sentence or two of explanation, or a quick use;
- 2: a real explanation, or a worked example;
- 3: a thorough treatment: what it is, why, and worked examples.
These are the only roles and depths.made).
For a topic, the topics recommended before it (recommended_before), those that come next (next), and related topics, each with its best clip judged to teach it, or a fallback moment with its reason. The order comes from how courses teach the topics: a suggestion, not a rule, and only where courses agree; a topic may have none. Useful for planning a sequence of lessons or a review: "what should my class know before the chain rule". Each clip has its clip_id (the id of the clip in full), theclip_id, lecture, start_seconds, suggested_end_seconds (the next moment's start, else two minutes on) and estimated_segment_seconds, match_source (study_guide, topic_page or transcript_search), itssuggested_end_seconds, curriculum place (status checked: the guide's own pick;place, mapped:play_url, theclassroom_share_url, topiccredit isline inand thelicence guide),note. captions_available,teaching.role play_url(teaches, (theuses lectureor pagementions) fromand theteaching.depth start),(0, classroom_share_urlnamed (Shareonly, to Google Classroom), the credit line and the licence with3, a short note. Eachthorough cliptreatment) sayssay how an AI review of itsthe transcript judged the moment to treat the topic (teaching.role and teaching.depth, judged_by(judged_by "ai_transcript_review"; not_judged where no reviewnone was made), in the reviewer's own words:
- "teaches": the moment is about the topic itself: it defines the topic, explains it, or works an example whose point is the topic. A student who wants to learn this topic would learn some of it here.
- "uses": the moment applies the topic, or relies on it, while its point is something else. A calculation that applies a rule on the way to another result uses the rule, however carefully each step is shown.
- "mentions": the moment names the topic in passing, without explaining or using it.
- 0: named only;
- 1: a sentence or two of explanation, or a quick use;
- 2: a real explanation, or a worked example;
- 3: a thorough treatment: what it is, why, and worked examples.
These are the only roles and depths.made).
One clip in full, by the clip_id a tool gave ("1234:osmosis", "1234:osmosis:2"), or a lecture's id and a second ("1234@300", the moment starting nearest it, within 90 seconds): everything a clip has in a topic's clip search, and the moment's summary, the questions it answers, its topics and the teacher's first words (a short quotation, not the transcript). A lecture no longer on Bettyapp answers available false, with its course's page and no clip to play. Each clip has its clip_id (the id of the clip in full), theclip_id, lecture, start_seconds, suggested_end_seconds (the next moment's start, else two minutes on) and estimated_segment_seconds, match_source (study_guide, topic_page or transcript_search), itssuggested_end_seconds, curriculum place (status checked: the guide's own pick;place, mapped:play_url, theclassroom_share_url, topiccredit isline inand thelicence guide),note. captions_available,teaching.role play_url(teaches, (theuses lectureor pagementions) fromand theteaching.depth start),(0, classroom_share_urlnamed (Shareonly, to Google Classroom), the credit line and the licence with3, a short note. Eachthorough cliptreatment) sayssay how an AI review of itsthe transcript judged the moment to treat the topic (teaching.role and teaching.depth, judged_by(judged_by "ai_transcript_review"; not_judged where no reviewnone was made), in the reviewer's own words:
- "teaches": the moment is about the topic itself: it defines the topic, explains it, or works an example whose point is the topic. A student who wants to learn this topic would learn some of it here.
- "uses": the moment applies the topic, or relies on it, while its point is something else. A calculation that applies a rule on the way to another result uses the rule, however carefully each step is shown.
- "mentions": the moment names the topic in passing, without explaining or using it.
- 0: named only;
- 1: a sentence or two of explanation, or a quick use;
- 2: a real explanation, or a worked example;
- 3: a thorough treatment: what it is, why, and worked examples.
These are the only roles and depths.made).
One study guide's topics in the course's order: each topic's unit, name, what it covers, its codes in the curriculum (section numbers), and its clips (the guide's own picks), recommended or fallback as in a topic's clip search. The guide is named by its id ("ontario/physics/grade-12"), or by its board and course ("Ontario SPH4U", "England GCSE Biology"). unit, section_code and topic limit the answerit to part of the guide; it answers a page of topics at a time (page, pages). Whentime. severalSeveral guidesmatching match,guides: it answers candidates, eachcandidates with itstheir id.ids. Typical requests it serves:request: "what does SPH4U cover, with clips", "clips for each topic of my Grade 12 physics course".clips". Each clip has its clip_id (the id of the clip in full), theclip_id, lecture, start_seconds, suggested_end_seconds (the next moment's start, else two minutes on) and estimated_segment_seconds, match_source (study_guide, topic_page or transcript_search), itssuggested_end_seconds, curriculum place (status checked: the guide's own pick;place, mapped:play_url, theclassroom_share_url, topiccredit isline inand thelicence guide),note. captions_available,teaching.role play_url(teaches, (theuses lectureor pagementions) fromand theteaching.depth start),(0, classroom_share_urlnamed (Shareonly, to Google Classroom), the credit line and the licence with3, a short note. Eachthorough cliptreatment) sayssay how an AI review of itsthe transcript judged the moment to treat the topic (teaching.role and teaching.depth, judged_by(judged_by "ai_transcript_review"; not_judged where no reviewnone was made), in the reviewer's own words:
- "teaches": the moment is about the topic itself: it defines the topic, explains it, or works an example whose point is the topic. A student who wants to learn this topic would learn some of it here.
- "uses": the moment applies the topic, or relies on it, while its point is something else. A calculation that applies a rule on the way to another result uses the rule, however carefully each step is shown.
- "mentions": the moment names the topic in passing, without explaining or using it.
- 0: named only;
- 1: a sentence or two of explanation, or a quick use;
- 2: a real explanation, or a worked example;
- 3: a thorough treatment: what it is, why, and worked examples.
These are the only roles and depths.made).
Finds shortthe clipsfew ofminutes inside real lectures thatwhere teacha teacher explains a topic, for a teacher planning a class, by the topic's name and the class's Level. Typical requests it serves: "a short clip on mitosis for my grade 10 biology class", "somethingfew tominutes showof beforea welecture starton the chain rule", "a video to introduce photosynthesis". recommended:rule clipsfor judgedmy toGrade teach12 theclass", topic,"a bestconcrete first:example aof strongentropy matchfor judgedfirst-year tochemistry". teachExample: itthe inchain depthrule atreturns aMIT suitable18.01 Level,Lecture then04 thosefrom a28:03 studyto guide33:44 orof the topic page46-minute picked,lecture. thenrecommended: othersclips judged to teach it.the fallback:topic, onlybest first. fallback: when too few are recommended, related moments that use or mention the topic or were not judged, each with its fallback_reason; they are relatedtheir moments,fallback_reason, not teaching clips. Neither: Bettyapp has no lecture on it. Each clip has its clip_id (the id of the clip in full), theclip_id, lecture, start_seconds, suggested_end_seconds (the next moment's start, else two minutes on) and estimated_segment_seconds, match_source (study_guide, topic_page or transcript_search), itssuggested_end_seconds, curriculum place (status checked: the guide's own pick;place, mapped:play_url, theclassroom_share_url, topiccredit isline inand thelicence guide),note. captions_available,teaching.role play_url(teaches, (theuses lectureor pagementions) fromand theteaching.depth start),(0, classroom_share_urlnamed (Shareonly, to Google Classroom), the credit line and the licence with3, a short note. Eachthorough cliptreatment) sayssay how an AI review of itsthe transcript judged the moment to treat the topic (teaching.role and teaching.depth, judged_by(judged_by "ai_transcript_review"; not_judged where no reviewnone was made), in the reviewer's own words:
- "teaches": the moment is about the topic itself: it defines the topic, explains it, or works an example whose point is the topic. A student who wants to learn this topic would learn some of it here.
- "uses": the moment applies the topic, or relies on it, while its point is something else. A calculation that applies a rule on the way to another result uses the rule, however carefully each step is shown.
- "mentions": the moment names the topic in passing, without explaining or using it.
- 0: named only;
- 1: a sentence or two of explanation, or a quick use;
- 2: a real explanation, or a worked example;
- 3: a thorough treatment: what it is, why, and worked examples.
These are the only roles and depths.made).