BITESIZE READING LIBRARY V4.5.1 — CATALOGUE STANDARDS CONTRACT

AUTHORITY
Catalogue Manager -> catalog.json is authoritative.
Reading Library never edits standards mappings.

TOP-LEVEL FIELDS RECOGNISED
- products (required for a valid catalogue)
- catalog_version / catalogVersion / version
- updated / catalog_updated
- frameworks
- standards_master / standardsMaster
- verified_standard_index / verifiedStandardIndex

PRODUCT IDENTIFIER
Preferred canonical field: product_id
Alias accepted: productId
Existing Discover id is preserved separately when supplied.
Catalogue Manager V3.8.7 legacy_product_ids / legacyProductIds are accepted as exact aliases to the canonical product_id.
Reading Library can resolve an exact canonical ID, exact existing catalogue id, or exact published legacy alias to the canonical product_id.
Reading Library does not title-match standards automatically. A teacher may explicitly confirm a catalogue link for an unmatched installed resource; that confirmed canonical Product ID is then stored locally.
Presentation Builder V2.16.1 Product ID Edition embeds product_id in formatVersion 5 .bitesizepresentation files. When a resource ZIP contains one of these projects, Reading Library records that same Product ID during installation.

PRODUCT STANDARDS FIELDS
- alignment_status / alignmentStatus
- standards_alignment / standardsAlignment
- text_type / textType

VERIFICATION
Only verified records count.
Explicit not_reviewed, draft or unverified records do not count.

ALIGNMENT GROUP/ITEM FIELDS RECOGNISED
- framework / framework_id / frameworkId
- grade / grade_level / gradeLevel
- verification_status / verificationStatus
- alignments / standards / items
- code / standard_code / standardCode / standard
- level / coverage / alignment_level / alignmentLevel
- verified
- evidence / note
- text_type / textType

MASTER STANDARD FIELDS RECOGNISED
- framework / framework_id / frameworkId
- grade / grade_level / gradeLevel
- code / standard_code / standardCode / standard
- strand / strand_id / strandId
- strand_name / strandName / strand_label / strandLabel
- cluster / cluster_id / clusterId
- cluster_name / clusterName / cluster_label / clusterLabel
- official_wording / officialWording / wording / standard_text / standardText / full_text / fullText
- short_description / shortDescription / teacher_description / teacherDescription / summary / title
- active

ALIGNMENT LEVELS
Addressed -> rank 1
Practised / Practiced -> rank 2
Assessed -> rank 3

Assessed counts in Addressed + Practised + Assessed totals.
Practised counts in Addressed + Practised totals.

FAIL-SAFE RULE
Unknown fields/frameworks are ignored or displayed generically. Missing standards data never prevents normal resource use.
