# Improved SCORM 1.2 Specification (IScorm)

![iSCORM Logo](https://user-images.githubusercontent.com/2368069/137387161-222aee59-b206-4ceb-a3c7-38cc1fcec13b.png)

The IScorm Spec is a Super Set of the ADL SCORM 1.2 Specification. IScorm is designed to provide a few missing features to the SCORM 1.2 API while still mostly supporting the original SCORM 1.2 specification. Here are a few goals:

* Add ASYNC callbacks to LMSInitialize, LMSCommit and LMSFinish
* Expose an alternative to the standard window\.api object instance that is less generic
* Expose versioning

The getting Started section below links to each of the extended SCORM specs. As of v1.0 only the SCORM 1.2 Runtime has been extended.

### Posible breaking changes

* LMSInitialize will always return 'true' and to retrieve the error information you must use the asyncOptions parameter
* LMSCommit will always return 'true' and to retrieve the error information you must use the asyncOptions parameter
* LMSFinish will always return 'true' and to retrieve the error information you must use the asyncOptions parameter

### Conventions

* Released versions will be tagged with a versionnumber like 1.0, 1.1, 1.2 etc.
* Working versions will live on branches named for the major working version (1.x, 2.x, 3.x etc.)
* This spec will only document changes to the SCORM 2.1 Specification
* Anything not identified as a change will be assumed to be unchanged from the original spec
* Every effort will be taken to ensure that this extension does not break the original specification except where listed in the breaking changes above.

### Getting Started

As we extend each part of the SCORM 1.2 spec we'll list the changes here:

* [IScorm Run-Time Environment](/iscorm-specification/spec/iscorm_run-time_environment.md)

You can download a copy of the original spec here: [ADL SCORM 1.2 Runtime](https://github.com/NexPort-Solutions/iscorm/blob/main/spec/SCORM-12-RunTimeEnv.pdf)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.nexportsolutions.com/iscorm-specification/readme.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
