This is unclear. For one thing "atomic" isn't defined here, and for another, the parentheses aren't clear: is it:

an Array or (a flat object containing only atomic values and other flat objects)
or:
(an Array or a flat object) containing only atomic values and other flat objects

Can it be an array containing another array? (I think so, but that doesn't seem to be allowed by the description here.)

The docs on message-passing talks about objects that can be serialised to JSON (https://addons.mozilla.org/en-US/developers/docs/sdk/1.13/dev-guide/guides/content-scripts/using-port.html#json_serializable) and defines it like:

[a JSON-serializable object is] "a string, number, boolean, null, array of JSON-serializable values, or an object whose property values are themselves JSON-serializable."

Is that definition correct for this? If so, could it be adapted? Or am I confused here?