s/prompt_number/execution_count in nbformat 4
msgspec: stream.data -> stream.text
move mime-bundle data to rich output.data

from top-level output keys
only rich display outputs have metadata

even affects v3, which had some bugs that didn't describe actual js behavior
semicolons, you guys!
output[mime/type] -> output.data[mime/type] in javascript
update nbformat spec in sphinx
warn on invalid notebooks before/after conversion

was raising on downgrade, warning on upgrade
make markdown heading input match output size
remove heading cells in v4
better regex replacement for MarkdownCell.set_heading_level

(c/o Matthias)
add metadata tables to nbformat doc
use v4 for test validation from the future
convert v3->v4: only set collapsed metadata if value is defined
use from_dict for dict->notebook

not confusing to_notebook_json
upgrade examples to nbformat 4