> ## Documentation Index
> Fetch the complete documentation index at: https://docs.learningcommons.org/llms.txt
> Use this file to discover all available pages before exploring further.

# Schema

> Complete reference for the Knowledge Graph GraphQL schema, including all node types, relationship property types, and programmatic schema exploration examples using introspection.

export const GatedCallout = ({children}) => <div className="eyebrow-callout not-prose rounded-xl border border-gray-200/80 p-5 dark:border-white/10" style={{
  marginBottom: "1rem",
  borderRadius: "4px"
}}>
    <div className="mb-3">
      <Badge color="orange" size="md" icon="lock">
        Gated
      </Badge>
    </div>
    <div className="callout-body text-[15px] leading-relaxed text-gray-700 dark:text-gray-300">{children}</div>
    <style>{`.callout-body a { text-decoration: underline; text-decoration-color: #178251; }`}</style>
  </div>;

export const EarlyAccessCallout = ({children}) => <div className="eyebrow-callout not-prose rounded-xl border border-gray-200/80 p-5 dark:border-white/10" style={{
  marginBottom: "1rem",
  borderRadius: "4px"
}}>
    <div className="mb-3">
      <Badge color="green" size="md" icon="flask">
        Early access
      </Badge>
    </div>
    <div className="callout-body text-[15px] leading-relaxed text-gray-700 dark:text-gray-300">{children}</div>
    <style>{`.callout-body a { text-decoration: underline; text-decoration-color: #178251; }`}</style>
  </div>;

<GatedCallout>
  Access to this resource is restricted and requires prior approval. In some cases, a license may also be required. Contact [support@learningcommons.org ↗](mailto:support@learningcommons.org) for information about access and eligibility.
</GatedCallout>

The API supports GraphQL introspection, so you can dynamically discover types, fields, and relationships at runtime.

This page documents the core GraphQL types that power the Knowledge Graph API, including:

* Node types such as `Activity`, `Lesson`, `Course`, and `StandardsFrameworkItem`
* Relationship property types such as `HasPartProperties` and `SupportsProperties`
* Examples for exploring the schema with GraphQL introspection and API clients

## Explore the schema with introspection

You can use standard GraphQL introspection queries to discover available types and fields.

### Discover available types

List all types, their kind, and description.

```text theme={null}
query {
  __schema {
    types {
      name
      kind
      description
    }
  }
}
```

### Explore a specific type

Inspect a single type, including its fields and field types.

```text theme={null}
query {
  __type(name: "Lesson") {
    name
    fields {
      name
      type {
        name
        kind
      }
      description
    }
  }
}
```

### Discover available queries

List all root query fields and their arguments.

```text theme={null}
query {
  __schema {
    queryType {
      fields {
        name
        args {
          name
          type {
            name
          }
        }
      }
    }
  }
}
```

### Explore relationship fields on a type

Inspect field types and nested type information for a specific type.

```text theme={null}
query {
  __type(name: "Lesson") {
    fields {
      name
      type {
        name
        ofType {
          name
        }
      }
    }
  }
}
```

Look for fields that start with `has` or that match relationship naming patterns to understand available connections between nodes.

## Using cURL for schema exploration

```shell theme={null}
# Discover all available types
curl -X POST \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{"query":"{ __schema { types { name kind } } }"}' \
  https://cumtxmqb68.execute-api.us-west-2.amazonaws.com/staging/v1.0.0/graphql
```

```shell theme={null}
# Explore a specific type (e.g., Lesson)
curl -X POST \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{"query":"{ __type(name: \"Lesson\") { fields { name type { name } } } }"}' \
  https://cumtxmqb68.execute-api.us-west-2.amazonaws.com/staging/v1.0.0/graphql
```

## Using Python for schema exploration

```py theme={null}
from gql import Client, gql

# Get all available types
schema_query = gql("""
    query {
      __schema {
        types {
          name
          kind
          fields {
            name
            type {
              name
            }
          }
        }
      }
    }
""")

result = client.execute(schema_query)
for type_info in result["__schema"]["types"]:
    if not type_info["name"].startswith("__"):  # Skip introspection types
        print(f"Type: {type_info['name']} ({type_info['kind']})")

<Note>
  ← Back to [GraphQL API getting started](/knowledge-graph/using-knowledge-graph/graph-ql-api/getting-started).
</Note>
```

# Full schema

## Core node types

These `@node` types represent the core entities in the Knowledge Graph.

### Activity

**Fields**

| Field               | Type       | Description |
| :------------------ | :--------- | :---------- |
| academicSubject     | String!    |             |
| audience            | \[String]! |             |
| author              | String!    |             |
| courseCode          | String!    |             |
| curriculumLabel     | String!    |             |
| dateCreated         | Date!      |             |
| educationalUse      | String!    |             |
| gradeLevel          | \[String]! |             |
| gradingRequired     | Boolean!   |             |
| identifier          | String!    |             |
| inLanguage          | String!    |             |
| isOptional          | Boolean!   |             |
| license             | String!    |             |
| lmsLoadingGuidance  | String!    |             |
| name                | String!    |             |
| ordinalName         | String!    |             |
| position            | BigInt!    |             |
| provider            | String!    |             |
| studentGroupingType | String!    |             |
| submissionRequired  | Boolean    |             |
| timeRequired        | String     |             |

**Relationships**

| Relationship field                             | Target type             | Relationship type       | Direction | Properties type                   |
| :--------------------------------------------- | :---------------------- | :---------------------- | :-------- | :-------------------------------- |
| hasEducationalAlignmentStandardsFrameworkItems | StandardsFrameworkItem! | hasEducationalAlignment | OUT       | HasEducationalAlignmentProperties |
| hasPartMaterials                               | Material!               | hasPart                 | OUT       | HasPartProperties                 |
| hasReferenceLessons                            | Lesson!                 | hasReference            | OUT       | HasReferenceProperties            |
| instructionalRoutineshasReference              | InstructionalRoutine!   | hasReference            | IN        | HasReferenceProperties            |
| lessonshasPart                                 | Lesson!                 | hasPart                 | IN        | HasPartProperties                 |
| lessonshasReference                            | Lesson!                 | hasReference            | IN        | HasReferenceProperties            |
| usesRoutineInstructionalRoutines               | InstructionalRoutine!   | usesRoutine             | OUT       | UsesRoutineProperties             |

### Assessment

**Fields**

| Field               | Type       | Description |
| :------------------ | :--------- | :---------- |
| academicSubject     | String!    |             |
| audience            | \[String]! |             |
| author              | String!    |             |
| courseCode          | String!    |             |
| curriculumLabel     | String!    |             |
| dateCreated         | Date!      |             |
| educationalUse      | String!    |             |
| gradeLevel          | \[String]! |             |
| gradingRequired     | Boolean!   |             |
| identifier          | String!    |             |
| inLanguage          | String!    |             |
| isOptional          | Boolean!   |             |
| license             | String!    |             |
| lmsLoadingGuidance  | String!    |             |
| name                | String!    |             |
| provider            | String!    |             |
| studentGroupingType | String!    |             |
| submissionRequired  | Boolean!   |             |
| timeRequired        | String     |             |
| variant             | String     |             |

**Relationships**

| Relationship field                             | Target type             | Relationship type       | Direction | Properties type                   |
| :--------------------------------------------- | :---------------------- | :---------------------- | :-------- | :-------------------------------- |
| assessmentsmutuallyExclusiveWith               | Assessment!             | mutuallyExclusiveWith   | IN        | MutuallyExclusiveWithProperties   |
| hasEducationalAlignmentStandardsFrameworkItems | StandardsFrameworkItem! | hasEducationalAlignment | OUT       | HasEducationalAlignmentProperties |
| hasPartMaterials                               | Material!               | hasPart                 | OUT       | HasPartProperties                 |
| hasReferenceLessonGroupings                    | LessonGrouping!         | hasReference            | OUT       | HasReferenceProperties            |
| hasReferenceLessons                            | Lesson!                 | hasReference            | OUT       | HasReferenceProperties            |
| lessonGroupingshasPart                         | LessonGrouping!         | hasPart                 | IN        | HasPartProperties                 |
| lessonGroupingshasReference                    | LessonGrouping!         | hasReference            | IN        | HasReferenceProperties            |
| lessonshasPart                                 | Lesson!                 | hasPart                 | IN        | HasPartProperties                 |
| lessonshasReference                            | Lesson!                 | hasReference            | IN        | HasReferenceProperties            |
| mutuallyExclusiveWithAssessments               | Assessment!             | mutuallyExclusiveWith   | OUT       | MutuallyExclusiveWithProperties   |

### ClassroomMaterial

**Fields**

| Field              | Type       | Description |
| :----------------- | :--------- | :---------- |
| academicSubject    | String!    |             |
| audience           | \[String]! |             |
| author             | String!    |             |
| curriculumLabel    | String!    |             |
| description        | String!    |             |
| educationalUse     | String!    |             |
| identifier         | String!    |             |
| inLanguage         | String!    |             |
| license            | String!    |             |
| lmsLoadingGuidance | String!    |             |
| name               | String!    |             |
| provider           | String!    |             |

**Relationships**

| Relationship field | Target type | Relationship type | Direction | Properties type |
| :----------------- | :---------- | :---------------- | :-------- | :-------------- |
| lessonsuses        | Lesson!     | uses              | IN        | UsesProperties  |

### Course

**Fields**

| Field              | Type       | Description |
| :----------------- | :--------- | :---------- |
| academicSubject    | String!    |             |
| audience           | \[String]! |             |
| author             | String!    |             |
| courseCode         | String!    |             |
| curriculumLabel    | String!    |             |
| dateCreated        | Date!      |             |
| description        | String!    |             |
| educationalUse     | String!    |             |
| gradeLevel         | \[String]! |             |
| identifier         | String!    |             |
| inLanguage         | String!    |             |
| license            | String!    |             |
| lmsLoadingGuidance | String!    |             |
| name               | String!    |             |
| provider           | String!    |             |
| timeRequired       | String     |             |

**Relationships**

| Relationship field                             | Target type             | Relationship type       | Direction | Properties type                   |
| :--------------------------------------------- | :---------------------- | :---------------------- | :-------- | :-------------------------------- |
| hasEducationalAlignmentStandardsFrameworkItems | StandardsFrameworkItem! | hasEducationalAlignment | OUT       | HasEducationalAlignmentProperties |
| hasPartLessonGroupings                         | LessonGrouping!         | hasPart                 | OUT       | HasPartProperties                 |
| hasPartMaterials                               | Material!               | hasPart                 | OUT       | HasPartProperties                 |
| usesRoutineInstructionalRoutines               | InstructionalRoutine!   | usesRoutine             | OUT       | UsesRoutineProperties             |

### Factor

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| academicSubject      | String!        |             |
| attributionStatement | String!        |             |
| author               | String!        |             |
| category             | String!        |             |
| citations            | \[String]!     |             |
| content              | String!        |             |
| description          | String!        |             |
| gradeLevel           | \[String]!     |             |
| identifier           | String!        |             |
| license              | String!        |             |
| name                 | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |

**Relationships**

| Relationship field                        | Target type             | Relationship type   | Direction | Properties type               |
| :---------------------------------------- | :---------------------- | :------------------ | :-------- | :---------------------------- |
| factorsinteractsWithFactor                | Factor!                 | interactsWithFactor | IN        | InteractsWithFactorProperties |
| interactsWithFactorFactors                | Factor!                 | interactsWithFactor | OUT       | InteractsWithFactorProperties |
| learnerModelshasFactor                    | LearnerModel!           | hasFactor           | IN        | HasFactorProperties           |
| relevantToStandardStandardsFrameworkItems | StandardsFrameworkItem! | relevantToStandard  | OUT       | RelevantToStandardProperties  |
| strategiestargetsFactor                   | Strategy!               | targetsFactor       | IN        | TargetsFactorProperties       |

### GlossaryTerm

**Fields**

| Field              | Type       | Description |
| :----------------- | :--------- | :---------- |
| academicSubject    | String!    |             |
| audience           | \[String]! |             |
| author             | String!    |             |
| curriculumLabel    | String!    |             |
| description        | String!    |             |
| educationalUse     | String!    |             |
| identifier         | String!    |             |
| inLanguage         | String!    |             |
| license            | String!    |             |
| lmsLoadingGuidance | String!    |             |
| name               | String!    |             |
| provider           | String!    |             |

**Relationships**

| Relationship field        | Target type     | Relationship type | Direction | Properties type      |
| :------------------------ | :-------------- | :---------------- | :-------- | :------------------- |
| lessonGroupingsreferences | LessonGrouping! | references        | IN        | ReferencesProperties |
| lessonsreferences         | Lesson!         | references        | IN        | ReferencesProperties |

### InstructionalRoutine

**Fields**

| Field              | Type       | Description |
| :----------------- | :--------- | :---------- |
| academicSubject    | String!    |             |
| audience           | \[String]! |             |
| author             | String!    |             |
| curriculumLabel    | String!    |             |
| dateCreated        | Date       |             |
| description        | String     |             |
| educationalUse     | String!    |             |
| gradeLevel         | \[String]  |             |
| identifier         | String!    |             |
| inLanguage         | String!    |             |
| isOptional         | Boolean!   |             |
| license            | String!    |             |
| lmsLoadingGuidance | String!    |             |
| name               | String!    |             |
| ordinalName        | String     |             |
| position           | BigInt     |             |
| provider           | String!    |             |

**Relationships**

| Relationship field           | Target type           | Relationship type | Direction | Properties type        |
| :--------------------------- | :-------------------- | :---------------- | :-------- | :--------------------- |
| activitiesusesRoutine        | Activity!             | usesRoutine       | IN        | UsesRoutineProperties  |
| coursesusesRoutine           | Course!               | usesRoutine       | IN        | UsesRoutineProperties  |
| hasPartInstructionalRoutines | InstructionalRoutine! | hasPart           | OUT       | HasPartProperties      |
| hasPartMaterials             | Material!             | hasPart           | OUT       | HasPartProperties      |
| hasReferenceActivities       | Activity!             | hasReference      | OUT       | HasReferenceProperties |
| hasReferenceLessons          | Lesson!               | hasReference      | OUT       | HasReferenceProperties |
| instructionalRoutineshasPart | InstructionalRoutine! | hasPart           | IN        | HasPartProperties      |

### LearnerModel

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| academicSubject      | String!        |             |
| attributionStatement | String!        |             |
| author               | String!        |             |
| content              | String!        |             |
| description          | String!        |             |
| gradeLevel           | \[String]!     |             |
| identifier           | String!        |             |
| license              | String!        |             |
| name                 | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |

**Relationships**

| Relationship field    | Target type | Relationship type | Direction | Properties type       |
| :-------------------- | :---------- | :---------------- | :-------- | :-------------------- |
| hasFactorFactors      | Factor!     | hasFactor         | OUT       | HasFactorProperties   |
| hasStrategyStrategies | Strategy!   | hasStrategy       | OUT       | HasStrategyProperties |

### LearningComponent

**Fields**

| Field                | Type    | Description |
| :------------------- | :------ | :---------- |
| academicSubject      | String! |             |
| attributionStatement | String! |             |
| author               | String! |             |
| dateCreated          | Date!   |             |
| dateModified         | Date!   |             |
| description          | String! |             |
| identifier           | String! |             |
| inLanguage           | String! |             |
| license              | String! |             |
| provider             | String! |             |

**Relationships**

| Relationship field              | Target type             | Relationship type | Direction | Properties type    |
| :------------------------------ | :---------------------- | :---------------- | :-------- | :----------------- |
| supportsStandardsFrameworkItems | StandardsFrameworkItem! | supports          | OUT       | SupportsProperties |

### Lesson

**Fields**

| Field              | Type       | Description |
| :----------------- | :--------- | :---------- |
| academicSubject    | String!    |             |
| audience           | \[String]! |             |
| author             | String!    |             |
| courseCode         | String!    |             |
| curriculumLabel    | String!    |             |
| dateCreated        | Date!      |             |
| educationalUse     | String!    |             |
| gradeLevel         | \[String]! |             |
| identifier         | String!    |             |
| inLanguage         | String!    |             |
| isOptional         | Boolean!   |             |
| license            | String!    |             |
| lmsLoadingGuidance | String!    |             |
| name               | String!    |             |
| ordinalName        | String!    |             |
| position           | BigInt!    |             |
| provider           | String!    |             |
| timeRequired       | String!    |             |

**Relationships**

| Relationship field                             | Target type             | Relationship type       | Direction | Properties type                   |
| :--------------------------------------------- | :---------------------- | :---------------------- | :-------- | :-------------------------------- |
| activitieshasReference                         | Activity!               | hasReference            | IN        | HasReferenceProperties            |
| assessmentshasReference                        | Assessment!             | hasReference            | IN        | HasReferenceProperties            |
| hasEducationalAlignmentStandardsFrameworkItems | StandardsFrameworkItem! | hasEducationalAlignment | OUT       | HasEducationalAlignmentProperties |
| hasPartActivities                              | Activity!               | hasPart                 | OUT       | HasPartProperties                 |
| hasPartAssessments                             | Assessment!             | hasPart                 | OUT       | HasPartProperties                 |
| hasPartMaterials                               | Material!               | hasPart                 | OUT       | HasPartProperties                 |
| hasReferenceActivities                         | Activity!               | hasReference            | OUT       | HasReferenceProperties            |
| hasReferenceAssessments                        | Assessment!             | hasReference            | OUT       | HasReferenceProperties            |
| hasReferenceLessonGroupings                    | LessonGrouping!         | hasReference            | OUT       | HasReferenceProperties            |
| hasReferenceLessons                            | Lesson!                 | hasReference            | OUT       | HasReferenceProperties            |
| instructionalRoutineshasReference              | InstructionalRoutine!   | hasReference            | IN        | HasReferenceProperties            |
| lessonGroupingshasPart                         | LessonGrouping!         | hasPart                 | IN        | HasPartProperties                 |
| lessonGroupingshasReference                    | LessonGrouping!         | hasReference            | IN        | HasReferenceProperties            |
| lessonshasReference                            | Lesson!                 | hasReference            | IN        | HasReferenceProperties            |
| referencesGlossaryTerms                        | GlossaryTerm!           | references              | OUT       | ReferencesProperties              |
| usesClassroomMaterials                         | ClassroomMaterial!      | uses                    | OUT       | UsesProperties                    |

### LessonGrouping

**Fields**

| Field              | Type       | Description |
| :----------------- | :--------- | :---------- |
| academicSubject    | String!    |             |
| audience           | \[String]! |             |
| author             | String!    |             |
| courseCode         | String!    |             |
| curriculumLabel    | String!    |             |
| dateCreated        | Date!      |             |
| educationalUse     | String!    |             |
| gradeLevel         | \[String]! |             |
| groupLevel         | BigInt!    |             |
| groupName          | String!    |             |
| identifier         | String!    |             |
| inLanguage         | String!    |             |
| isOptional         | Boolean!   |             |
| license            | String!    |             |
| lmsLoadingGuidance | String!    |             |
| name               | String!    |             |
| ordinalName        | String!    |             |
| position           | BigInt!    |             |
| provider           | String!    |             |
| timeRequired       | String     |             |

**Relationships**

| Relationship field                             | Target type             | Relationship type       | Direction | Properties type                   |
| :--------------------------------------------- | :---------------------- | :---------------------- | :-------- | :-------------------------------- |
| assessmentshasReference                        | Assessment!             | hasReference            | IN        | HasReferenceProperties            |
| courseshasPart                                 | Course!                 | hasPart                 | IN        | HasPartProperties                 |
| hasDependencyLessonGroupings                   | LessonGrouping!         | hasDependency           | OUT       | HasDependencyProperties           |
| hasEducationalAlignmentStandardsFrameworkItems | StandardsFrameworkItem! | hasEducationalAlignment | OUT       | HasEducationalAlignmentProperties |
| hasPartAssessments                             | Assessment!             | hasPart                 | OUT       | HasPartProperties                 |
| hasPartLessonGroupings                         | LessonGrouping!         | hasPart                 | OUT       | HasPartProperties                 |
| hasPartLessons                                 | Lesson!                 | hasPart                 | OUT       | HasPartProperties                 |
| hasPartMaterials                               | Material!               | hasPart                 | OUT       | HasPartProperties                 |
| hasReferenceAssessments                        | Assessment!             | hasReference            | OUT       | HasReferenceProperties            |
| hasReferenceLessons                            | Lesson!                 | hasReference            | OUT       | HasReferenceProperties            |
| lessonGroupingshasDependency                   | LessonGrouping!         | hasDependency           | IN        | HasDependencyProperties           |
| lessonGroupingshasPart                         | LessonGrouping!         | hasPart                 | IN        | HasPartProperties                 |
| lessonshasReference                            | Lesson!                 | hasReference            | IN        | HasReferenceProperties            |
| referencesGlossaryTerms                        | GlossaryTerm!           | references              | OUT       | ReferencesProperties              |

### Material

**Fields**

| Field           | Type    | Description |
| :-------------- | :------ | :---------- |
| academicSubject | String! |             |
| audience        | String! |             |
| author          | String! |             |
| content         | String! |             |
| educationalUse  | String! |             |
| identifier      | String! |             |
| inLanguage      | String! |             |
| license         | String! |             |
| materialType    | String! |             |
| name            | String! |             |
| ordinalName     | String! |             |
| provider        | String! |             |

**Relationships**

| Relationship field           | Target type           | Relationship type | Direction | Properties type   |
| :--------------------------- | :-------------------- | :---------------- | :-------- | :---------------- |
| activitieshasPart            | Activity!             | hasPart           | IN        | HasPartProperties |
| assessmentshasPart           | Assessment!           | hasPart           | IN        | HasPartProperties |
| courseshasPart               | Course!               | hasPart           | IN        | HasPartProperties |
| instructionalRoutineshasPart | InstructionalRoutine! | hasPart           | IN        | HasPartProperties |
| lessonGroupingshasPart       | LessonGrouping!       | hasPart           | IN        | HasPartProperties |
| lessonshasPart               | Lesson!               | hasPart           | IN        | HasPartProperties |

### StandardsFramework

**Fields**

| Field                | Type    | Description |
| :------------------- | :------ | :---------- |
| academicSubject      | String! |             |
| adoptionStatus       | String! |             |
| attributionStatement | String! |             |
| author               | String! |             |
| caseIdentifierURI    | String! |             |
| caseIdentifierUUID   | String! |             |
| dateModified         | Date!   |             |
| description          | String  |             |
| identifier           | String! |             |
| inLanguage           | String! |             |
| jurisdiction         | String! |             |
| license              | String! |             |
| name                 | String! |             |
| notes                | String  |             |
| provider             | String! |             |

**Relationships**

| Relationship field              | Target type             | Relationship type | Direction | Properties type    |
| :------------------------------ | :---------------------- | :---------------- | :-------- | :----------------- |
| hasChildStandardsFrameworkItems | StandardsFrameworkItem! | hasChild          | OUT       | HasChildProperties |

### StandardsFrameworkItem

**Fields**

| Field                   | Type       | Description |
| :---------------------- | :--------- | :---------- |
| academicSubject         | String!    |             |
| attributionStatement    | String!    |             |
| author                  | String!    |             |
| caseIdentifierURI       | String!    |             |
| caseIdentifierUUID      | String!    |             |
| dateModified            | Date!      |             |
| description             | String!    |             |
| gradeLevel              | \[String]! |             |
| identifier              | String!    |             |
| inLanguage              | String!    |             |
| jurisdiction            | String!    |             |
| license                 | String!    |             |
| normalizedStatementType | String     |             |
| notes                   | String     |             |
| provider                | String!    |             |
| statementCode           | String     |             |
| statementType           | String     |             |

**Relationships**

| Relationship field                          | Target type             | Relationship type       | Direction | Properties type                   |
| :------------------------------------------ | :---------------------- | :---------------------- | :-------- | :-------------------------------- |
| activitieshasEducationalAlignment           | Activity!               | hasEducationalAlignment | IN        | HasEducationalAlignmentProperties |
| assessmentshasEducationalAlignment          | Assessment!             | hasEducationalAlignment | IN        | HasEducationalAlignmentProperties |
| buildsTowardsStandardsFrameworkItems        | StandardsFrameworkItem! | buildsTowards           | OUT       | BuildsTowardsProperties           |
| courseshasEducationalAlignment              | Course!                 | hasEducationalAlignment | IN        | HasEducationalAlignmentProperties |
| factorsrelevantToStandard                   | Factor!                 | relevantToStandard      | IN        | RelevantToStandardProperties      |
| hasChildStandardsFrameworkItems             | StandardsFrameworkItem! | hasChild                | OUT       | HasChildProperties                |
| hasStandardAlignmentStandardsFrameworkItems | StandardsFrameworkItem! | hasStandardAlignment    | OUT       | HasStandardAlignmentProperties    |
| learningComponentssupports                  | LearningComponent!      | supports                | IN        | SupportsProperties                |
| lessonGroupingshasEducationalAlignment      | LessonGrouping!         | hasEducationalAlignment | IN        | HasEducationalAlignmentProperties |
| lessonshasEducationalAlignment              | Lesson!                 | hasEducationalAlignment | IN        | HasEducationalAlignmentProperties |
| relatesToStandardsFrameworkItems            | StandardsFrameworkItem! | relatesTo               | OUT       | RelatesToProperties               |
| standardsFrameworkItemsbuildsTowards        | StandardsFrameworkItem! | buildsTowards           | IN        | BuildsTowardsProperties           |
| standardsFrameworkItemshasChild             | StandardsFrameworkItem! | hasChild                | IN        | HasChildProperties                |
| standardsFrameworkItemshasStandardAlignment | StandardsFrameworkItem! | hasStandardAlignment    | IN        | HasStandardAlignmentProperties    |
| standardsFrameworkItemsrelatesTo            | StandardsFrameworkItem! | relatesTo               | IN        | RelatesToProperties               |
| standardsFrameworkshasChild                 | StandardsFramework!     | hasChild                | IN        | HasChildProperties                |

### Strategy

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| academicSubject      | String!        |             |
| attributionStatement | String!        |             |
| author               | String!        |             |
| category             | String!        |             |
| citations            | \[String]!     |             |
| content              | String!        |             |
| description          | String!        |             |
| gradeLevel           | \[String]!     |             |
| identifier           | String!        |             |
| license              | String!        |             |
| name                 | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |

**Relationships**

| Relationship field       | Target type   | Relationship type | Direction | Properties type         |
| :----------------------- | :------------ | :---------------- | :-------- | :---------------------- |
| learnerModelshasStrategy | LearnerModel! | hasStrategy       | IN        | HasStrategyProperties   |
| targetsFactorFactors     | Factor!       | targetsFactor     | OUT       | TargetsFactorProperties |

## Relationship property types

These `@relationshipProperties` types model metadata on edges between nodes in the graph.

### BuildsTowardsProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| attributionStatement | String!        |             |
| author               | String!        |             |
| description          | String!        |             |
| identifier           | String!        |             |
| license              | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### HasChildProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| attributionStatement | String!        |             |
| author               | String!        |             |
| dateModified         | Date!          |             |
| description          | String!        |             |
| identifier           | String!        |             |
| license              | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### HasDependencyProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| identifier           | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### HasEducationalAlignmentProperties

**Fields**

| Field                   | Type           | Description |
| :---------------------- | :------------- | :---------- |
| alignmentType           | String!        |             |
| curriculumAlignmentType | String!        |             |
| identifier              | String!        |             |
| provider                | String!        |             |
| providerDateCreated     | LocalDateTime! |             |
| providerDateModified    | LocalDateTime! |             |
| relationshipType        | String!        |             |
| sourceEntity            | String!        |             |
| sourceEntityKey         | String!        |             |
| targetEntity            | String!        |             |
| targetEntityKey         | String!        |             |

### HasFactorProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| attributionStatement | String!        |             |
| author               | String!        |             |
| identifier           | String!        |             |
| license              | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### HasPartProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| identifier           | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### HasReferenceProperties

**Fields**

| Field                   | Type           | Description |
| :---------------------- | :------------- | :---------- |
| curriculumReferenceType | String!        |             |
| identifier              | String!        |             |
| provider                | String!        |             |
| providerDateCreated     | LocalDateTime! |             |
| providerDateModified    | LocalDateTime! |             |
| relationshipType        | String!        |             |
| sourceEntity            | String!        |             |
| sourceEntityKey         | String!        |             |
| targetEntity            | String!        |             |
| targetEntityKey         | String!        |             |

### HasStandardAlignmentProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| attributionStatement | String!        |             |
| author               | String!        |             |
| ccssLCCount          | BigInt!        |             |
| dateCreated          | Date!          |             |
| dateModified         | Date!          |             |
| description          | String!        |             |
| identifier           | String!        |             |
| jaccard              | Float!         |             |
| license              | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sharedLCCount        | BigInt!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| stateLCCount         | BigInt!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### HasStrategyProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| attributionStatement | String!        |             |
| author               | String!        |             |
| identifier           | String!        |             |
| license              | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### InteractsWithFactorProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| attributionStatement | String!        |             |
| author               | String!        |             |
| description          | String!        |             |
| identifier           | String!        |             |
| license              | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### MutuallyExclusiveWithProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| identifier           | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### ReferencesProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| identifier           | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### RelatesToProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| attributionStatement | String!        |             |
| author               | String!        |             |
| description          | String!        |             |
| identifier           | String!        |             |
| license              | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### RelevantToStandardProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| attributionStatement | String!        |             |
| author               | String!        |             |
| identifier           | String!        |             |
| license              | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### SupportsProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| attributionStatement | String!        |             |
| author               | String!        |             |
| dateCreated          | Date!          |             |
| dateModified         | Date!          |             |
| description          | String!        |             |
| humanReviewed        | String         |             |
| identifier           | String!        |             |
| license              | String!        |             |
| method               | String         |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| status               | String         |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### TargetsFactorProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| attributionStatement | String!        |             |
| author               | String!        |             |
| connectionType       | String!        |             |
| factorCategory       | String         |             |
| identifier           | String!        |             |
| license              | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### UsesProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| identifier           | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

### UsesRoutineProperties

**Fields**

| Field                | Type           | Description |
| :------------------- | :------------- | :---------- |
| identifier           | String!        |             |
| provider             | String!        |             |
| providerDateCreated  | LocalDateTime! |             |
| providerDateModified | LocalDateTime! |             |
| relationshipType     | String!        |             |
| sourceEntity         | String!        |             |
| sourceEntityKey      | String!        |             |
| targetEntity         | String!        |             |
| targetEntityKey      | String!        |             |

## Programmatic schema exploration

You can also explore the schema programmatically using HTTP clients or GraphQL libraries.

### Using cURL to list all types

Run a POST request with an introspection query.

```bash theme={null}
curl -X POST \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{"query":"{ __schema { types { name kind } } }"}' \
  https://cumtxmqb68.execute-api.us-west-2.amazonaws.com/staging/v1.0.0/graphql
```

### Using cURL to inspect the Lesson type

```bash theme={null}
curl -X POST \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: YOUR_API_KEY' \
  -d '{"query":"{ __type(name: \"Lesson\") { fields { name type { name } } } }"}' \
  https://cumtxmqb68.execute-api.us-west-2.amazonaws.com/staging/v1.0.0/graphql
```

### Using Python (gql) to explore the schema

```python theme={null}
from gql import Client, gql

schema_query = gql("""
    query {
      __schema {
        types {
          name
          kind
          fields {
            name
            type {
              name
            }
          }
        }
      }
    }
""")

result = client.execute(schema_query)

for type_info in result["__schema"]["types"]:
    if not type_info["name"].startswith("__"):
        print(f"Type: {type_info['name']} ({type_info['kind']})")
```
