{
  "$schema" : "https://json-schema.org/draft/2019-09/schema#",
  "$id" : "https://purl.imsglobal.org/spec/case/v1p1/schema/json/case_v1p1_cfitem-jsonschema1.json",
  "title" : "JSON Schema for the CFItem class.",
  "description" : "This is the container for the CFItem data outside of the context of a CFPackage. This is the content that either describes a specific competency (learning objective) or describes a grouping of competencies within the taxonomy of a Competency Framework Document. ",
  "type" : "object",
  "properties" : {
    "CFDocumentURI" : {
      "$ref" : "#/$defs/LinkURI"
    },
    "identifier" : {
      "description" : "An unambiguous, synthetic, globally unique identifier for the CFItem. This is the primary way in which the exchange identification is achieved.",
      "$comment" : "Origin: UUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). The form of the GUID is a Universally Unique Identifier (UUID) of 16 hexadecimal characters (lower case) in the format 8-4-4-4-12. All permitted versions (1-5) and variants (1-2) are supported.",
      "type" : "string",
      "format" : "uuid"
    },
    "fullStatement" : {
      "description" : "The text of the statement. The textual content that either describes a specific competency or describes a less granular group of competencies within the taxonomy of the standards document. In Version 1.1 the data-type was changed from NormalizedString.",
      "$comment" : "Origin: String (PrimitiveType)",
      "type" : "string"
    },
    "alternativeLabel" : {
      "description" : "An alternate 'term' for Competency.  Some institutions may want to render their achievements as outcomes, or objectives, etc.  Semantically they are the same as Competencies, but diversity of terms is used.  This allows for the flexibility for the institution to define their own term for 'Competency' and not being locked into it.  ",
      "$comment" : "Origin: NormalizedString (PrimitiveType)",
      "type" : "string"
    },
    "CFItemType" : {
      "description" : "The textual label identifying the class of the statement as designated by the promulgating body.",
      "$comment" : "Origin: NormalizedString (PrimitiveType)",
      "type" : "string"
    },
    "uri" : {
      "description" : "An unambiguous reference to the CFItem using a network-resolvable URI.",
      "$comment" : "Origin: AnyURI (PrimitiveType)",
      "type" : "string"
    },
    "humanCodingScheme" : {
      "description" : "A human-referenceable code designated by the publisher to identify the item among learning standard items.",
      "$comment" : "Origin: NormalizedString (PrimitiveType)",
      "type" : "string"
    },
    "listEnumeration" : {
      "description" : "A set of one or more alphanumeric characters and/or symbol denoting the positioning of the statement being described in a sequential listing of statements. Use of the 'sequenceNumber' in the CFPckgAssociation class is preferred over the use of this property for sequencing.",
      "$comment" : "Origin: NormalizedString (PrimitiveType)",
      "type" : "string"
    },
    "abbreviatedStatement" : {
      "description" : "An abbreviated version of the Full Statement.",
      "$comment" : "Origin: NormalizedString (PrimitiveType)",
      "type" : "string"
    },
    "conceptKeywords" : {
      "type" : "array",
      "items" : {
        "description" : "The significant topicality of the CFItem using free-text keywords and phrases.",
        "$comment" : "Origin: NormalizedString (PrimitiveType)",
        "type" : "string"
      }
    },
    "conceptKeywordsURI" : {
      "$ref" : "#/$defs/LinkURI"
    },
    "notes" : {
      "description" : "Information about the derivation of a CFItem statement.",
      "$comment" : "Origin: String (PrimitiveType)",
      "type" : "string"
    },
    "subject" : {
      "type" : "array",
      "items" : {
        "description" : "A new attribute added in Version 1.1. The topic or academic subject of the Item (this should use some appropriate K-12, HE, etc. based vocabulary).",
        "$comment" : "Origin: NormalizedString (PrimitiveType)",
        "type" : "string"
      }
    },
    "subjectURI" : {
      "type" : "array",
      "items" : {
        "$ref" : "#/$defs/LinkURI"
      }
    },
    "language" : {
      "description" : "The default language of the text used for the content in the learning standard document (use ISO 639-2 [ISO 639]).",
      "$comment" : "Origin: Language (PrimitiveType)",
      "type" : "string"
    },
    "educationLevel" : {
      "type" : "array",
      "items" : {
        "description" : "The education level, grade level or primary instructional level at which a CFItem is intended",
        "$comment" : "Origin: NormalizedString (PrimitiveType)",
        "type" : "string"
      }
    },
    "CFItemTypeURI" : {
      "$ref" : "#/$defs/LinkURI"
    },
    "licenseURI" : {
      "$ref" : "#/$defs/LinkURI"
    },
    "statusStartDate" : {
      "description" : "The date the CFItem status started.",
      "$comment" : "Origin: Date (PrimitiveType)",
      "type" : "string",
      "format" : "date"
    },
    "statusEndDate" : {
      "description" : "The date the CFItem status ended or changed to another status.",
      "$comment" : "Origin: Date (PrimitiveType)",
      "type" : "string",
      "format" : "date"
    },
    "lastChangeDateTime" : {
      "description" : "A system generated timestamp of the most recent change to this record. This conforms to ISO 8601 dateTime definition [ISO 8601].",
      "$comment" : "Origin: DateTime (PrimitiveType)",
      "type" : "string",
      "format" : "date-time"
    },
    "extensions" : {
      "$ref" : "#/$defs/CFItemExtension"
    }
  },
  "required" : [ "CFDocumentURI", "identifier", "fullStatement", "uri", "lastChangeDateTime" ],
  "additionalProperties" : false,
  "$defs" : {
    "LinkURI" : {
      "description" : "A container for the information that is used to achieve the link data reference.",
      "type" : "object",
      "properties" : {
        "title" : {
          "description" : "A human readable title for the associated object.",
          "$comment" : "Origin: NormalizedString (PrimitiveType)",
          "type" : "string"
        },
        "identifier" : {
          "description" : "An unambiguous, synthetic, globally unique identifier (UUID) for the associated object.",
          "$comment" : "Origin: UUID (DerivedType); The data-type for establishing a Globally Unique Identifier (GUID). The form of the GUID is a Universally Unique Identifier (UUID) of 16 hexadecimal characters (lower case) in the format 8-4-4-4-12. All permitted versions (1-5) and variants (1-2) are supported.",
          "type" : "string",
          "format" : "uuid"
        },
        "uri" : {
          "description" : "A network-resolvable URI pointing to the authoritative reference for the associated object.",
          "$comment" : "Origin: AnyURI (PrimitiveType)",
          "type" : "string"
        }
      },
      "required" : [ "title", "identifier", "uri" ],
      "additionalProperties" : false
    },
    "CFItemExtension" : {
      "description" : "The container for the proprietary extensions to the CFItem class.",
      "type" : "object",
      "properties" : { },
      "required" : [ ],
      "additionalProperties" : true
    }
  }
}