Description
Serialization Requirements
- Serialization format must represent the program
- Serialization format must represent the program's current state (backgrounds, variables / lists, sprites, etc.)
- Serialization format must be able to be packaged along side assets (sounds, images, etc.)
- Serialization format should use space efficiently
- Compression
- Duplication (see "lists" issue in SB2)
- Representation (balance with "readability"?)
- Serialization format should be able to be strongly validated (JSON schema)
Package Requirements
- Package format must include all information needed to replicate and execute the program without an internet connection. Possible exceptions:
- Cloud Variables
- Extensions
- Package format should use space efficiently
Considerations / Questions
- How do we represent Scratch extensions (e.g. SB2)?
- How do we ensure that the addition of new blocks / functionality in the future can be easily accommodated (flexibility)?
- How do we accommodate SB3 files in our projects / asset infrastructure?
- How do we handle issues of backwards compatibility?
- SB2 -> SB3 conversion
- SB3 files should throw a friendly error message to Scratch < 3.0 clients