The paging file format is a composite one - a single file / stream can contain data which is not necessarily all read by a single class.  
More...
The paging file format is a composite one - a single file / stream can contain data which is not necessarily all read by a single class. 
Instead, data chunks can be read by different classes, allowing the format to be extended to different types smoothly. 
- Paging world files have by default an extension ".world", but that is not a requirement. Internally, the only thing that matters is the data chunks and their identifiers, which are 4-character codes embedded in a uint32 as calculated by StreamSerialiser::makeIdentifier. All data will be read and written using DataStream and the StreamSerialiser class. 
- Data types are expressed at the lowest level exposed by the StreamSerialiser class, which is used to read / write this file. 
- Chunk Definitions 
- PagedWorld (Identifier 'PWLD')
 [Version 1]
| Name | Type | Description |  
| World Name | char* | The name of the world - should be unique |  
| PagedWorldSection List | Chunk List | A variable-length list of nested PagedWorldSection chunks |  
 
- PagedWorldSection (Identifier 'PWSC')
 [Version 1]
| Name | Type | Description |  
| World Section Name | char* | The name of the world section - should be unique within world |  
| Bounding box | AABB | AABB of this world section in world space |  
| PageStrategy name | char* | The name of the PageStrategy class this world section uses to manage pages |  
| Page Strategy Data | Nested Chunk | PageStrategy specific data for this world section |  
 
- PagedStrategyData (Identifier defined by subclass)
 [Version 1]
| Name | Type | Description |  
| PageStrategy defined | ??? | This chunk will contain data as defined by the specific PageStrategyData used by the parent PagedWorldSection |  
 
- Page (Identifier 'PAGE')
 [Version 1]
| Name | Type | Description |  
| Page ID | uint32 | The identifier of the page |  
| PageContentCollection list | Nested chunk list | 1-n nested chunks of type PageContentCollection |  
 
- PageContentCollection (Identifier 'PGCC')
 [Version 1]
| Name | Type | Description |  
| Factory name | char* | The name of the content collection factory |  
| PageContentCollectionData chunk | Nested chunk | Data required to initialise & configure the content collection |  
 
- PageContentCollectionData (Identifier defined by subclass)
 [Version 1]
| Name | Type | Description |  
| PageContentCollection subclass defined | ??? | This chunk will contain data as defined by the specific PageContentCollection subclass |  
 
- PageContent (Identifier 'PGCN')
 [Version 1]
| Name | Type | Description |  
| Factory name | char* | The name of the content factory |  
| PageContentData chunk | Nested chunk | Data required to initialise & configure the content |  
 
- PageContentData (Identifier defined by subclass)
 [Version 1]
| Name | Type | Description |  
| PageContent subclass defined | ??? | This chunk will contain data as defined by the specific PageContent subclass |